C'est un article que moi, qui étudie pour l'acquisition de Java8 Silver, résume les méthodes de String et StringBuilder. Voici quelques-unes des méthodes String et StringBuilder que vous devez garder à l'esprit lorsque vous passez l'examen Java Silver. Comme vous vous en doutez, je suis une personne inexpérimentée, donc si vous faites une erreur, j'apprécierais que vous puissiez la signaler.
Dans le chapitre suivant, nous expliquerons dans l'ordre de la méthode String et de la méthode StringBuilder.
La chaîne elle-même ne sera expliquée qu'en gros. Le point à maintenir est
-C'est un type de référence, pas un type primitif ・ Immuable (une fois défini, il ne réécrit pas en mémoire)
Est-ce un endroit? String gère les chaînes avec char []. Par conséquent, dans la méthode suivante, l'objet référencé sera le même même si la valeur de référence est différente (le code est cité à partir de [Référence 2] ref1).
String a = "pomme";
String b = new String("pomme");
String c = new String(new char[]{'Ri', 'Hmm', 'Aller'});
System.out.println(a); //pomme
System.out.println(b); //pomme
System.out.println(c); //pomme
Aussi, j'ai dit Immuable, mais cela ne signifie pas qu'il ne peut pas être réaffecté. La réassignation change la destination de référence de la variable (pour plus de détails, voir les articles dans [Référence 3] et ref2).
Ensuite, le sujet principal, ci-dessous, sont les méthodes que "je vais tester ici!" (La liste des méthodes est citée de la référence 1). (Étant donné que l'introduction de la méthode se poursuit paresseusement, veuillez déplacer votre main et écrire le code)
char charAt(int i) Renvoie le caractère à la position spécifiée par ʻi`. La chaîne d'origine ne change pas. (Comment lire le code: le caractère écrit après // représente la chaîne de caractères de sortie)
String str = "Hello Java!";
System.out.println(str.charAt(4)); // J
System.out.println(str); // Hello Java!
String concat(String str) La chaîne de caractères spécifiée par str est concaténée à la fin. Après tout, la chaîne de caractères d'origine ne change pas.
String str = "Hello ";
System.out.println(str.concat("Java!")); // Hello Java!
System.out.println(str); // Hello
boolean equalsIgnoreCase(String str)
Compare la chaîne cible avec str
, insensible à la casse.
String str = "Hello Java!";
System.out.println(str.equalsIgnoreCase("HELLO JAVA!")); // true
//Comparé par égaux
System.out.println(str.equals("HELLO JAVA!")); // false
int indexOf(int ch), int lastIndexOf(int ch) Souvenons-nous de ces deux ensembles! Les deux renvoient la position où le caractère spécifié par «ch» est apparu pour la première fois.
ʻIndexOf recherche la chaîne de gauche et
lastIndexOf` la recherche à droite. Ensuite, le caractère le plus à gauche est défini comme le 0ème caractère, et il vous indique le numéro du caractère correspondant (le vide est également compté comme un caractère).
String str = "Hello Java!";
// H e l l o J a v a !
// 0 1 2 3 4 5 6 7 8 9 10
System.out.println(str.indexOf("l")); // 2
System.out.println(str.lastIndexOf("l")); // 3
int length() Renvoie le nombre de caractères de la chaîne. Encore une fois, les blancs sont comptés comme un caractère.
String str = "Hello Java!";
System.out.println(str.length()); // 11
String replace(char o, char n) Renvoie une chaîne dans laquelle les caractères «o» de la chaîne sont tous remplacés par les caractères «n».
String str = "Hello Java!";
System.out.println(str.replace('a', 'o')); // Hello Jovo!
boolean startsWith(String prefix), boolean endsWith(String suffix) Il semble bon de se souvenir de cela comme un ensemble aussi!
startsWith
renvoie true si la chaîne commence par prefix
.
ʻEndsWithrenvoie true si la chaîne se termine par
suffix`.
String str = "Hello Java!";
System.out.println(str.startsWith("Hello")); // true
System.out.println(str.startsWith("Hey!")); // false
System.out.println(str.endsWith("Java!")); // true
System.out.println(str.endsWith("python!")); // false
String substring(int start, int end)
Renvoie la chaîne de start
à juste avant ʻend`, et la chaîne entre les deux. Il peut être plus facile à comprendre en regardant le code car il est difficile de comprendre ce «entre les deux».
Le but est de compter entre les lettres, pas les lettres elles-mêmes (dans l'exemple ci-dessous, les chaînes d'origine sont séparées et numérotées avec un tube (|)).
String str = "Hello Java!";
// | H | e | l | l | o | | J | a | v | a | ! |
// 0 1 2 3 4 5 6 7 8 9 10 11
//Lorsque les premier et deuxième arguments sont spécifiés
System.out.println(str.substring(2, 7)); // llo J
//Lorsque seul le premier argument est spécifié
//Les deux suivants produisent la même chaîne de caractères
System.out.println(str.substring(2)); // llo Java!
System.out.println(str.substring(2, str.length())); // llo Java!
String toLowerCase(), String toUpperCase() toLowerCase () convertit les majuscules et les minuscules en minuscules. Les caractères qui étaient à l'origine en minuscules ne changent pas.
toUpperCase () convertit les minuscules en majuscules. C'est tout.
String str = "Hello Java!";
System.out.println(str.toLowerCase()); // hello java!
System.out.println(str.toUpperCase()); // HELLO JAVA!
String trim() Supprime les blancs demi-largeur aux deux extrémités. C'est un peu déroutant, mais c'est évident si l'on compte le nombre de caractères!
String str = " Hello Java! ";
System.out.println(str.trim()); // Hello Java!
System.out.println(str.trim().length()); // 11
System.out.println(str); // Hello Java!
System.out.println(str.length()); // 13
Alors que Stirng est immuable, StringBuilder remplace la valeur référencée lors de la réaffectation. L'essentiel est que la méthode String ne modifie pas la chaîne d'origine, tandis que la méthode StringBuilder modifie la chaîne d'origine.
Il existe les méthodes suivantes pour déclarer StringBuilder [^ 20].
// 1.Déclaré avec désinvolture, la capacité initiale est de 16 caractères
StringBuilder sb1 = new StringBuilder();
// 2.Capacité initiale déclarée en caractères
// 80.Si vous entrez un nombre réel tel que 0, une erreur de compilation se produira. Seul int peut être spécifié.
StringBuilder sb2 = new StringBuilder(int capacity);
// 3.Initialiser avec str
StringBuilder sb3 = new StringBuilder(String str);
// 4.Déclarer et éditer immédiatement
System.out.println(new StringBuilder("Hello Java!"));
StringBuilder append(String str) Ajoutez str après la chaîne. Contrairement à String, la chaîne d'origine changera.
StringBuilder sb = new StringBuilder("Hello Java!");
System.out.println(sb.append(" World!!")); // Hello Java! World!!
System.out.println(sb); // Hello Java! World!!
StringBuilder insert(int offset, String str) Cette méthode permet également d'ajouter des caractères, mais vous pouvez spécifier la position à ajouter. Pour plus de clarté, les chaînes d'origine sont séparées et numérotées par un tube (|).
StringBuilder sb = new StringBuilder("Hello Java!");
// | H | e | l | l | o | | J | a | v | a | ! |
// 0 1 2 3 4 5 6 7 8 9 10 11
System.out.println(sb.insert(10, "Script")); // Hello JavaScript!
System.out.println(sb); // Hello JavaScript!
StringBuilder delete(int start, int end) Supprime les caractères du «début» juste avant le «fin».
StringBuilder sb = new StringBuilder("Hello Java");
System.out.println(sb.delete(2, 4)); // Heo Java!
System.out.println(sb); // Heo Java!
// length()Peut être utilisé en combinaison avec pour supprimer tous les caractères
System.out.println(sb.delete(0, sb.length())); // (Aucune sortie)
StringBuilder reverse() Inversez l'ordre des chaînes.
StringBuilder sb = new StringBuilder("Hello Java!");
System.out.println(sb.reverse()); // !avaJ olleH
System.out.println(sb); // !avaJ olleH
void setCharAt(int index, char ch)
ʻIndex Remplacez le ** caractère ** à la ième position par
ch`.
StringBuilder sb = new StringBuilder("Hello Java!");
sb.setCharAt(6, 'j');
System.out.println(sb); // Hello java!
StringBuilder replace(int start, int end, String str)
Remplacez les caractères du «début» juste avant le «fin» par «str». Ce n'est pas grave si le nombre de caractères à remplacer et le nombre de caractères dans str
ne correspondent pas.
Contrairement à setCharAt, il remplace ** string ** et renvoie un StringBuilder.
StringBuilder sb = new StringBuilder("Hello Java!");
System.out.println(sb.replace(6, 10, "python")); // Hello python!
System.out.println(sb); // Hello python!
String substring()
Il peut être utilisé exactement de la même manière que [String substring ()
](# string-substring int-start-int-end).
String toString() Comme vous pouvez le voir [^ 40], il convertit StringBuilder en String. Il est utilisé lors de la comparaison avec String.
StringBuilder sb = new StringBuilder("Hello Java!");
String str = "Hello Java!";
//Comparez si les valeurs str et sb sont identiques
System.out.println( str.equals(sb.toString()) ); // true
CharSequence subSequence(int start, int end)
En fait, il se comporte exactement comme [String substring ()
](# string-substring int-start-int-end).
S'il y a une différence, la valeur de retour est-elle un objet appelé «CharSeqence»?
Alors l'objet original est immuable.
StringBuilder sb = new StringBuilder("Hello Java!");
System.out.println(sb.subSequence(2, 8)); // oll Ja
if (sb.subSequence(2, 8) instanceof CharSequence ) {
System.out.println("this is CharSequence Object"); //Sera exécuté
}
}
Dans Java Silver, de nombreuses questions se posent sur les méthodes String / StringBuilder. Cela semble être une chose dite de base, mais il est difficile (était) d'enquêter et de résumer. J'espère que cet article vous aidera à comprendre String / StringBuilder et à réussir l'examen.
[^ 20]: Personnellement, j'ai été surpris de penser que la méthode 4 serait une erreur. [^ 40]: Je me suis demandé où vous pourrez le voir plus tard, mais j'ai décidé de ne pas le réparer.