7
votes

Moyen le plus simple d'obtenir chaque mot sauf le dernier mot d'une chaîne

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


3 commentaires

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


6 Réponses :


7
votes

Vous pouvez obtenir le lastIndexof de l'espace blanc et utiliser une sous-chaîne comme ci-dessous: xxx

sortie: xxx


0 commentaires

22
votes

Comme ceci:

    String test = "This is a test";
    String firstWords = test.substring(0, test.lastIndexOf(" "));
    String lastWord = test.substring(test.lastIndexOf(" ") + 1);


0 commentaires

4
votes

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(" "));


0 commentaires

3
votes

J'ai ajouté une ligne à votre code. Rien n'a été supprimé ici. XXX


0 commentaires

2
votes

Ceci conviendra à vos besoins: xxx

par exemple: xxx

retourne: xxx


2 commentaires

Pour une raison quelconque, je continue à obtenir: [ljava.lang.string; @ CA0B6 Quand j'exécute la regex. Des idées?


@Digitalwolf parce que Split renvoie un tableau et ljava.lang.string; @ CA0B6 est la représentation d'un tableau de chaînes (c'est-à-dire lorsque vous appelez myarray.tostring ( ) ). Il suffit d'utiliser arrayes.aslist (myarray) (par exemple, arranges.Aslist ("Ceci est une phrase" .Split ("\\ s + [^ \\ s] + $ | \\ s +" )) ) Pour obtenir le résultat que j'ai fourni, puisque une liste a une représentation meilleure (plus convivial disons ;) ;) ).



2
votes
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));

    }
}

1 commentaires

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 "Modifier:", "Mettre à jour:" ou similaire - la réponse doit apparaître comme s'il était écrit aujourd'hui).