Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找字符串中字符的位置_Java_String_Character_Indices - Fatal编程技术网

Java 查找字符串中字符的位置

Java 查找字符串中字符的位置,java,string,character,indices,Java,String,Character,Indices,如何在字符串中找到一个字符并打印整个字符串中字符的位置?例如,我想在这个字符串中找到'o'的位置:“你是了不起的宝贝”并得到答案=11217 我写了这封信,但不起作用: public class Pos { public static void main(String args[]){ String string = ("You are awesome honey"); for (int i = 0 ; i<string.length() ; i++

如何在
字符串中找到一个字符
并打印整个字符串中字符的位置?例如,我想在这个字符串中找到
'o'
的位置:
“你是了不起的宝贝”
并得到答案=
11217

我写了这封信,但不起作用:

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));
    }
}
公共类Pos{
公共静态void main(字符串参数[]){
字符串=(“你真是太棒了,亲爱的”);

对于(int i=0;i从第一个字符开始,迭代所有字符直到结束。在每一步测试字符是否为“o”。如果是,则打印位置。

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

    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));
}
公共类Pos{
公共静态void main(字符串参数[]){
字符串=(“你真是太棒了,亲爱的”);
对于(inti=0;i,在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);
        }   
    }
String s=“你太棒了,亲爱的”;
char[]数组=s.toCharArray();
for(int i=0;i
以下是查找字符串中特定字符的所有位置的函数

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;
}
publicArrayList查找位置(字符串、字符){
ArrayList位置=新的ArrayList();
对于(int i=0;i
并使用它

ArrayList<Integer> result = findPositions("You are awesome honey",'o'); 
// result will contains 1,12,17
arraylistresult=findPositions(“你真是太棒了,亲爱的,'o');
//结果将包含1,12,17

如果您需要代码,您需要编辑您的问题以添加一个标签,告诉我们您使用的是什么语言/环境。此外,您自己有没有尝试过?如果有,请也添加。我编辑了我的问题,是这样的格式吗?非常感谢您的帮助,这是工作:) :X@RastinRadvar当一个答案对你有效时,你应该接受它。谢谢,伙计,它已经完成了。我是新来的,不知道如何使用它。我很快就会找到一切,再次感谢你的帮助:)谢谢,它也有效,但我不喜欢使用数组。我找到了我的答案,但非常感谢你的帮助:)
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