Heim > Java > javaLernprogramm > Hauptteil

Beispielhafte Einführung in die ausführliche Erläuterung von Java-Strings

黄舟
Freigeben: 2016-12-19 14:20:51
Original
1343 Leute haben es durchsucht

1. Objekte erstellen

Für direkte String-Konstanten in Java-Programmen verwendet die JVM einen String-Pool, um sie zu speichern. Wenn eine String-Direktkonstante zum ersten Mal verwendet wird, legt die JVM sie zum Zwischenspeichern in den String-Pool ab. Unter normalen Umständen werden String-Objekte im String-Pool nicht durch Garbage Collection erfasst. Wenn das Programm die Zeichenfolge erneut verwenden muss, kann die Referenzvariable direkt auf die vorhandene Zeichenfolge in der Zeichenfolge verweisen, ohne eine neue Zeichenfolge neu erstellen zu müssen. Das mit der neuen Operation erstellte String-Objekt zeigt nicht auf das Objekt im String-Pool, aber Sie können es mit der Methode intern() auf das Objekt im String-Pool verweisen.

public class StringDemo1 {
     public static void main(String[] args){
         String str1 ="abc";
         String str2 ="abc";
         String str3 =new String("abc");
         System.out.println(str1==str2);//true
         System.out.println(str1==str3);//false
         }
 }
Nach dem Login kopieren

FAQ

String str3 =new String("abc");
Nach dem Login kopieren

Wie viele Objekte wurden erstellt?
Antwort: Wie viele Objekte wurden von zwei

String str ="ab"+"cd";
Nach dem Login kopieren

erstellt?


Antwort: Eins. „ab“ und „cd“ sind Konstanten, die im String-Pool platziert werden. Daher wird nur ein abcd-String-Pool erstellt und der String abcd im String-Pool gespeichert.

public class StringDemo1 {
    public static void main(String[] args){
        String str1 ="ab";
        String str2 ="cd";
        String str3 ="ab"+"cd";//创建对象并加入字符串池
        String str4 =str1+str2;
        String str5 =str1+"cd";
        System.out.println(str3==str4);//false
        System.out.println(str3==str5);//false

        }
}
Nach dem Login kopieren

Wie aus dem obigen Code ersichtlich ist: Nur String-Objekte, die mit Anführungszeichen erstellt wurden und Text enthalten, können zum String-Pool hinzugefügt werden. Für den „+“-Verbindungsausdruck, der das durch das neue erstellte neue Objekt enthält -Methode werden neue Objekte generiert, die nicht zum String-Pool hinzugefügt werden.


Aber es gibt eine Situation, die unsere Aufmerksamkeit erfordert:

public class StringDemo1 {
    private final static String str1 ="ab";
    private final static String str2 ="cd";
    public static void main(String[] args){
        String str3 ="ab"+"cd";//创建对象并加入字符串池
        String str4 =str1+str2;
        String str5 =str1+"cd";
        System.out.println(str3==str4);//true
        System.out.println(str3==str5);//true

        }
}
Nach dem Login kopieren

Warum ist das so? Der Grund dafür ist, dass es sich um Konstanten handelt. Sein Wert ist fest und kann daher zur Kompilierungszeit bestimmt werden.


Ändern Sie den obigen Code leicht und sehen Sie, was passiert.

public class StringDemo1 {
     private final static String str1 ;
     private final static String str2;
     static{
     str1="ab";
     str2="cd";
     }
     public static void main(String[] args){
         String str3 ="ab"+"cd";//创建对象并加入字符串池
         String str4 =str1+str2;
         String str5 =str1+"cd";
         System.out.println(str3==str4);//false
         System.out.println(str3==str5);//false

         }
 }
Nach dem Login kopieren

Obwohl str1 und str2 als Konstanten definiert sind, werden ihnen sofort Werte zugewiesen, bevor der Wert von s berechnet wird. Wann und welcher Wert ihnen zugewiesen wird, sind Variablen, also die Eigenschaften und Variablen sind gleich. Kann nur zur Laufzeit erstellt werden.


2. String-Methode

Methode abrufen

•int length()
•char charAt(int index)gemäß Position, um ein bestimmtes Zeichen zu erhalten
•int indexOf(int ch) gibt die Position zurück, an der ch zum ersten Mal in der Zeichenfolge erscheint
•int indexOf(int ch,int fromIndex) Beginnen Sie mit der durch fromIndex angegebenen Position und rufen Sie ch ab Position des ersten Vorkommens in der Zeichenfolge
•int indexOf(String str)
•int indexOf(String str,int fromIndex)
•int lastIndexOf(int ch)

Beurteilungsmethode

•boolean enthält(String str) Eine weitere Beurteilungsmethode: if(str.index(str)!=-1)
•boolean startetWith(String str)
•boolean endetWith( String str)
•bolean isEmpty(String str)
•boolean equal(String str)
•boolean equalIgnoreCase(String str);

Konvertierungsmethode

•Konvertiert Zeichenarray in string

Konstruktor

1.String(char[] chs)

2.String(char[] chs,offset,count) Zeichen konvertieren Teil des Arrays in konvertieren eine Zeichenfolge.

Statische Methode

1.static String copyValueOf(char[] chs)

2.static String copyValueOf(char[] chs,int offset,int count)

3.static String valueOf(char[] )

4.static String valueOf(char[] chs,int offset,int count)

•String in Zeichen-Array konvertieren

char[] toCharArray

•Zeichen-Array in String konvertieren
•String in Byte-Array konvertieren
Byte[] toBytes

Ersetzungsmethode

String replace(olderStr,newStr)

Cut-Methode

String split(regex)

Teilstring abrufen [Klassifizierung bearbeiten]

String subString(begin)

String subString(begin,end) enthält den Kopf, aber nicht den Schwanz

Konvertieren Sie den String in Groß- und Kleinbuchstaben für Android (10)

String toUpperCase()

String toLowerCase()

Leerzeichen an beiden Enden der Zeichenfolge entfernen

String trim()

Führen Sie eine natürliche Reihenfolge zweier Zeichenfolgen durch. Vergleich von

int CompareTo(String str)

3.String-Übungen

1. String-Flip

public class StringDemo2 {
     public static void main(String[] args){
         String str = "avdkfasjks";
         reverseMethod_1(str);
     }
     public static void reverseMethod_1(String str){
         for(int i=str.length();i>0;i--){
             System.out.print(str.charAt(i-1));
         }
     }
 }
Nach dem Login kopieren

2. Holen Sie sich den maximal identischen Teilstring

public class StringDemo2 {
    public static void main(String[] args){
        String str1 = "avdkfasjks";
        String str2 = "ewavdrtte";
        System.out.println(commonMaxSubstring(str1, str2));
    }
    public static String commonMaxSubstring(String str1,String str2){
        int len = str1.length();
        String str3 = null;
        outer:
            //i为子串的长度
            for(int i = len;i>0;i--){
                //j为子串的脚标
                for(int j=0;j<len-i+1;j++){
                    str3=str1.substring(j,j+i);
                    if(str2.contains(str3))
                        break outer;

                }
            }
        return str3;
    }
}
Nach dem Login kopieren

Das Obige ist die Einführung von Beispielen für eine detaillierte Erklärung von Java-Strings. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!