Quel est le moyen le plus simple d'obtenir chaque mot dans une chaîne autre que le dernier mot d'une chaîne?
Jusqu'à présent, j'utilise le code suivant pour obtenir le dernier mot: P>
String listOfWords = "This is a sentence";
String[] b = listOfWords.split("\\s+");
String lastWord = b[b.length - 1];
6 Réponses :
Vous pouvez obtenir le lastIndexof de l'espace blanc et utiliser une sous-chaîne comme ci-dessous: sortie: p>
Comme ceci:
String test = "This is a test";
String firstWords = test.substring(0, test.lastIndexOf(" "));
String lastWord = test.substring(test.lastIndexOf(" ") + 1);
Essayez d'utiliser la méthode string.lastinexof code> en combinaison avec string.substring code>. String listOfWords = "This is a sentence";
String allButLast = listOfWords.substring(0, listOfWords.lastIndexOf(" "));
J'ai ajouté une ligne à votre code. Rien n'a été supprimé ici.
Ceci conviendra à vos besoins: par exemple: p> retourne: p>
Pour une raison quelconque, je continue à obtenir: [ljava.lang.string; @ CA0B6 B> Quand j'exécute la regex. Des idées?
@Digitalwolf parce que Split code> renvoie un tableau et ljava.lang.string; @ CA0B6 code> est la représentation d'un tableau de chaînes (c'est-à-dire lorsque vous appelez myarray.tostring ( ) code>). Il suffit d'utiliser arrayes.aslist (myarray) code> (par exemple, arranges.Aslist ("Ceci est une phrase" .Split ("\\ s + [^ \\ s] + $ | \\ s +" )) code>) Pour obtenir le résultat que j'ai fourni, puisque une liste a une représentation meilleure i> (plus convivial i> disons ;) code>;) code >).
public class StringArray {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String sentence = "this is a sentence";
int index = sentence.lastIndexOf(" ");
System.out.println(sentence.substring(0, index));
}
}
Une explication serait en ordre. E.G., quelle est l'idée / gist? Veuillez répondre par Modification (changer) Votre réponse , pas ici dans les commentaires ( sans i> B> "Modifier:", "Mettre à jour:" ou similaire - la réponse doit apparaître comme s'il était écrit aujourd'hui).
Voulez-vous que chaque mot soit une chaîne séparée ou une chaîne contenant tout sauf le dernier mot ok aussi?
Je veux que chaque mot autre que le dernier mot soit dans 1 chaîne, puis le dernier mot pour être dans une autre chaîne.
Utilisez un groupe et définissez un mot en tant que groupe, mais ajoutez également un caractère d'espacement après cela. Quelque chose comme
(\ w) \ s code>