Java mis en œuvre dans plusieurs opérations sur l'inversion de chaîne (CharAt6, append1, reverse3, France) (entrée utilisateur à partir du clavier 999 détermine un 1 palindrome) (brève description de la différence entre le StringBuffer et String)

classe 1.①String est immuable classe, StringBuffer \ StringBuilder classe variable
 Exemples

String a = "123";  //1
a = "456";         //2

Le code ci - dessus, est un été modifié en apparence de l'original « 123 » à « 456 », il est pas vraiment,
dans la ligne 2, pour effectuer une opération de « cession », en fait, créer un nouvel objet String,
et un point l'objet nouvellement créé, l'objet original existera encore avant d' être récupéré.

② Le StringBuilder \ StringBuffer, est un type de variable
qui est, ils ont fait l'objet d'une variable de chaîne, il ne se régénère pas une cible, mais la nouvelle chaîne de connexion sur la base de l'objet original.

maisSi l'opération d'ajout

String x ="abc";
x+="defg";

Formellement équivalent à ce qui suit

StringBuffer a = new StringBuffer("abc"); 
                    //创建一个StringBuffer类的对象a
a.append("defg");   //给字符串a的结尾追加字符串"defg"
x = a.toString();   //将a以String形式赋给x

modification de la chaîne StringBuffer est d'abord créer un StringBuffer, la méthode append de StringBuffer suivi par l'appel, le dernier appel de retour de la méthode toString StringBuffer () les résultats

Implique une méthode append de connaissances
              code

          x.append(str);  //给字符串a追加子串str

Sur l'opération Ajouter chaîne, la performance chaîne est inférieure à StringBuffer, s'il est recommandé une telle opération plusieurs mots (comme le recyclage) à utiliser StringBuffer.

StringBuilder StringBuffer plus fort ratio de performance, mais pas assez de sécurité de fil

--------------- -------------- ligne de démarcation

2.StringBuilder et StringBuffer très similaires ,
mais parce que toutes les méthodes de StringBuffer a été ajouté au mot - clé synchronisé, cette méthode consiste à ajouter une serrure pour garantir la sécurité fil.

StringBuffer légèrement plus lente, mais la sécurité de fil.

Mais pas le StringBuilder mot-clé décrit ci-dessus, donc des performances légèrement.

--------------- -------------- ligne de démarcation

3. En ce qui concerne à la fois à titre d'exemple inverse de la fonction contenue () de l'inversion de la chaîne et des explications
 
 Exemples

public class Test{
public static void main(String args[]){
String ans = "Mustang";
String reverse_ans = new StringBuffer(ans).reverse().toString();//1
System.out.println(reverse_ans);  
//最终输出gnatsuM 
}
}

A la ligne 1 toString () est la sortie StringBuffer classe String, est renvoyé aux reverse_ans;

--------------- -------------- ligne de démarcation

4. En ce qui concerne la première chaîne en méthode d'inversion de matrice de type chaîne ombles utilise la méthode chaîne toCharArray
mis en œuvre sous la forme de questions faire.

Problème:
l'entrée du clavier de l' utilisateur à partir d' un nombre compris entre 1 à 9999, détermine le nombre est peu, et détermine si le nombre est un palindrome. Palindrome désigne le nombre et le même nombre de nombres numériques d' origine contenue dans l'ordre inverse pour obtenir, par exemple, sont 12121,3223 palindrome. 
             code

import java.util.*;
   public class Test{
   public static void main(String args[]){
   Scanner reader = new Scanner(System.in);
   String x = reader.nextLine();
   char []arr = x.toCharArray(); 
   String ans = "";
   for(int i =arr.length-1;i>=0;i--)
   ans = ans+arr[i];
   if(ans.equals(x))  //1111111111  
   System.out.println("是回文数");
   else
   System.out.println("不是回文数");
}
}

Analyse ans et x sont égaux au processus d'annotation est

                         a.equals(b);

au lieu de

 a==b  //错!

Étant donné que a et b sont de type chaîne de chaîne, si la chaîne est == analyserons deux ne sont pas égaux, mais la détermination si elles sont ou non référence égale. Ceci est faux.
Ils veulent déterminer si le contenu sont égaux, doivent être jugés par a.Equals (b).

--------------- -------------- ligne de démarcation

5. Utilisation selon toCharArray () de la chaîne à chaîne en un tableau de carbonisation, après inversion,

String a = "123456";
char [] x = a.toCharArray();
String ans = "";
for(i=x.length;i>=0;i--)
ans = ans+x[i];
System.out.println(ans);//得到反转字符串654321

--------------- -------------- ligne de démarcation

6. Utilisation de cordescharAtProcédé, pris un par un chaîne supplémentaire

public class Test{  
public static void main(String args[]) {
    String reverse = "";
    String str = "abc";
    int length = str.length();
    for (int i = length-1; i >= 0; i--) {
      reverse = str.charAt(i) + reverse;
    }
    System.out.println(str);
  }
}
Publié 32 articles originaux · louange gagné 6 · vues 1534

Je suppose que tu aimes

Origine blog.csdn.net/Pan_ZC/article/details/104964299
conseillé
Classement