it-swarm.com.de

Suchen Sie nach Positionen eines Zeichens in einer Zeichenfolge

Wie kann ich ein Zeichen in einer String finden und die Position des Zeichens über die gesamte Zeichenfolge ausgeben? Zum Beispiel möchte ich Positionen von 'o' in dieser Zeichenfolge finden: "you are awesome honey" und die Antwort = 1 12 17 erhalten.

Ich habe das geschrieben, aber es funktioniert nicht: 

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

Du hattest fast recht. Das Problem ist Ihre letzte Zeile. Sie sollten i anstelle von string.indexOf(i) drucken:

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

Hier ist die Funktion, um alle Positionen eines bestimmten Zeichens in Zeichenfolge zu finden

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;
}

Und benutze es von

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

Hier in 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

Beginnen Sie mit dem ersten Zeichen und iterieren Sie alle Zeichen bis zum Ende. Testen Sie bei jedem Schritt, ob das Zeichen ein "o" ist. Wenn es dann ist, drucken Sie die Position.

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));
}

Ausgabe:

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