web-dev-qa-db-ja.com

文字列内の文字の位置を見つける

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));
    }
}
_
8
Rastin Radvar

あなたはほとんど正しかった。問題はあなたの最後の行です。 string.indexOf(i)の代わりに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);
    }
}
4
Etienne Miret

文字列内の特定の文字のすべての位置を見つける関数は次のとおりです

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
0
Phan Van Linh

ここ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);
        }   
    }
0
Lukas Warsitz

最初の文字から開始し、最後に到達するまですべての文字を繰り返します。各ステップで、文字が「o」かどうかをテストします。場合は、その位置を印刷します。

0
Weyland Yutani
    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
0