Existe-t-il une méthode ou un moyen de lire et de continuer à lire les caractères à partir d'une chaîne, en les plaçant dans une nouvelle chaîne jusqu'à ce qu'il y ait un certain char. Continuez à lire de < à> mais pas plus loin. ThankxJAVA: Lit char de String à un certain char
Répondre
Bien sûr. Vous aurez besoin:
- la méthode
String.charAt(int)
- l'opérateur
+
(ou la méthodeString.concat
, ou, si les questions de performance, la classeStringBuilder
) - la déclaration
for
- et peut-être un
if
-Déclaration avec une instructionbreak
Les instructions et l'opérateur s sont expliqués dans le Java Tutorial, et la méthode dans l'API javadoc.
(Et non, je ne fournirai pas une mise en œuvre, puisque vous apprendriez peu en le copiant)
Vous pouvez réellement écrire un utilitaire qui fait que
public class StringUtil {
public static String copy(String str, char startChar, char endChar) {
int startPos = str.indexOf(startChar);
int endPos = str.lastIndexOf(endChar);
if (endPos < startPos) {
throw new RuntimeException("endPos < startPos");
}
char[] dest = new char[endPos - startPos + 1];
str.getChars(startPos, endPos, dest, 0);
return new String(dest);
}
};
PS .. Untested ..
Alternativement, vous pouvez
String result = str.substring(startPos, endPos + 1); //If you want to include the ">" tag.
Vous m'avez eu jusqu'à la ligne 'char []'. Cette ligne et les suivantes semblent être un énorme travail pour recréer 'String.substring'. – Powerlord
Goodness ... J'ai oublié 'String.substring' (et je jure que je le cherchais) ... –
Et,' lastIndexOf() 'n'est peut-être pas ce dont vous avez besoin. Cela échouera par exemple. 'text
Ceci peut ne pas être ce que vous voulez mais il vous donnera la chaîne désirée.
String desiredString="<Hello>".split("[<>]")[1];
- 1. Différence entre char * str = "STRING" et char str [] = "STRING"?
- 2. Comment convertir char * à un système :: string^
- 3. const unsigned char * à std :: string
- 4. convertir char ** en char * ou char
- 5. initialisation std :: string de char * sans copie
- 6. C++ char ** -> vecteur <string> -> string -> char ** problème d'analyse syntaxique
- 7. c scinder un char * en un char **
- 8. Char non signé char std :: vectorisé à unsigned char []?
- 9. Java Array Char Array
- 10. Java regexs: inattendu CHAR: '('
- 11. Convertir char [] en String dans BTrace
- 12. Comment concaténer char et string sur iPhone?
- 13. maréchal géré string [] CHAR non géré **
- 14. boost :: interprocess :: string conversion en char *
- 15. booste tampon en char * (pas std :: string)
- 16. En Java, est un char [] un objet?
- 17. Comment tester si une chaîne a un certain char unicode?
- 18. Comment envoyer une chaîne à un tableau char en Java?
- 19. Comment convertir un System :: String^en const char *?
- 20. Impossible de convertir const char * en char *
- 21. La conversion de char [] [] en caractère char ** provoque un segfault?
- 22. C# Marshalling char ** et unsigned char **
- 23. ce qui est différent entre char * t = new char et char * t = new char [10];
- 24. Conversion invalide de const char en char - Suppression de voyelle
- 25. Représentation de char comme octet en Java
- 26. MD5 avec ASCII Char
- 27. Comment concaténer un CHAR
- 28. const char * à TDesC16
- 29. Alternative à "char" enum
- 30. chaîne à char * marshaling
Avez-vous vraiment besoin de lire ces caractères un à la fois? – Powerlord
De '<' to '>'? N'êtes-vous pas en train de réinventer un analyseur XML/HTML? – BalusC
@BalusC, je pensais la même chose ... –