Je suis en train de créer une méthode qui retourne le dernier mot dans une chaîne, mais je suis un peu de difficulté à l'écrire.
Je suis en train de le faire en trouvant le dernier espace vide dans la chaîne et en utilisant un sous-chaîne pour trouver le mot. Voilà ce que j'ai jusqu'à présent:
String strSpace=" ";
int Temp; //the index of the last space
for(int i=str.length()-1; i>0; i--){
if(strSpace.indexOf(str.charAt(i))>=0){
//some code in between that I not sure how to write
}
}
}
Je commence juste à Java, donc je ne connais pas beaucoup des parties compliquées de la langue. Il serait très apprécié si quelqu'un pouvait me aider à trouver un moyen simple de résoudre ce problème. Merci!
String#lastIndexOf
et String#substring
sont vos amis ici.
char
s en Java peut être directement converti int
s, que nous allons utiliser pour trouver le dernier espace. Ensuite , nous allons tout simplement sous - chaîne à partir de là.
String phrase = "The last word of this sentence is stackoverflow";
System.out.println(phrase.substring(phrase.lastIndexOf(' ')));
Cette imprime aussi le caractère de l'espace lui-même. Pour se débarrasser de cela, on incrémente simplement l'indice auquel nous substring par un.
String phrase = "The last word of this sentence is stackoverflow";
System.out.println(phrase.substring(1 + phrase.lastIndexOf(' ')));
Si vous ne souhaitez pas utiliser String#lastIndexOf
, vous pouvez boucle à travers la chaîne et à chaque sous - chaîne , il l' espace jusqu'à ce que vous n'avez pas à gauche.
String phrase = "The last word of this sentence is stackoverflow";
String subPhrase = phrase;
while(true) {
String temp = subPhrase.substring(1 + subPhrase.indexOf(" "));
if(temp.equals(subPhrase)) {
break;
} else {
subPhrase = temp;
}
}
System.out.println(subPhrase);