查找字符串中字符的位置

Posted

技术标签:

【中文标题】查找字符串中字符的位置【英文标题】:Find Positions of a Character in a String 【发布时间】:2013-10-19 07:16:11 【问题描述】:

如何在String 中找到一个字符并在整个字符串中打印字符的位置?例如,我想在这个字符串中找到'o'的位置:"you are awesome honey"并得到答案=1 12 17

我写了这个,但它不起作用:

public class Pos 
    public static void main(String args[])
        String string = ("You are awesome honey");
        for (int i = 0 ; i<string.length() ; i++)
        if (string.charAt(i) == 'o')
        System.out.println(string.indexOf(i));
    

【问题讨论】:

如果您需要代码,您需要编辑您的问题以添加一个标签,告诉我们您正在使用哪种语言/环境。另外,您自己尝试过吗?如果是这样,请也添加。 我正在编辑我的问题,这种格式是这样的吗? 【参考方案1】:

从第一个字符开始,遍历所有字符直到结束。在每一步测试字符是否是'o'。如果是则打印位置。

【讨论】:

【参考方案2】:
    static ArrayList<String> getCharPosition(String str, char mychar) 
            ArrayList<String> positions = new ArrayList<String>();

            if (str.length() == 0)
                return null;

            for (int i = 0; i < str.length(); i ++) 
                if (str.charAt(i) == mychar) 
                    positions.add(String.valueOf(i));
                
            

            return positions;
    

String string = ("You are awesome honey");

ArrayList<String> result = getCharPosition(string, 'o');

for (int i = 0; i < result.size(); i ++) 
    System.out.println("char position is: " + result.get(i));

输出:

char position is: 1
char position is: 12
char position is: 17

【讨论】:

谢谢,它也可以工作,但我不喜欢使用数组。我找到了答案,但非常感谢您的帮助:)【参考方案3】:

你几乎是对的。问题是你的最后一行。你应该打印i 而不是string.indexOf(i)

public class Pos
    public static void main(String args[])
        String string = ("You are awesome honey");
        for (int i = 0 ; i<string.length() ; i++)
        if (string.charAt(i) == 'o')
        System.out.println(i);
    

【讨论】:

非常感谢您的帮助,它的工作:) :X @RastinRadvar 当一个答案对你有用时,你应该接受它。 谢谢老兄,完成了。我是新来的,不知道如何工作。我很快就会发现一切,再次感谢您的帮助:)【参考方案4】:

在 Java 中:

    String s = "you are awesome honey";
    char[] array = s.toCharArray();
    for(int i = 0; i < array.length; i++)
        if(array[i] == 'o')
            System.out.println(i);
           
    

【讨论】:

【参考方案5】:

这是查找字符串中特定字符的所有位置的函数

public ArrayList<Integer> findPositions(String string, char character) 
    ArrayList<Integer> positions = new ArrayList<>();
    for (int i = 0; i < string.length(); i++)
        if (string.charAt(i) == character) 
           positions.add(i);
        
    
    return positions;

然后使用它

ArrayList<Integer> result = findPositions("You are awesome honey",'o'); 
// result will contains 1,12,17

【讨论】:

以上是关于查找字符串中字符的位置的主要内容,如果未能解决你的问题,请参考以下文章

java 如何在字符串查找最后字符的位置

用js查找中文字符串位置

python中怎么返回指定查找字符的位置

查找字符串中字符的位置

excel FIND查找多个不同字符串 位置

oracle中查找一个字符串中某个字符的位置是啥函数