Zeichen in Zeichenkette nach Index in Java abrufen

Mohammad Irfan 12 Oktober 2023
  1. Holen Sie das Zeichen String mit der Methode charAt() in Java
  2. Umwandlung eines Zeichens in eine Zeichenkette mit der Methode String.valueOf()
  3. Abrufen eines Char-Arrays aus einem String in Java
  4. Abrufen von Zeichen der ergänzenden mehrsprachigen Ebene (SMP) von Unicode
  5. Zusammenfassung
Zeichen in Zeichenkette nach Index in Java abrufen

Dieses Tutorial stellt vor, wie man String-Zeichen per Index in Java erhält und listet auch einige Beispielcodes auf, um das Thema zu verstehen.

Strings werden verwendet, um eine Folge von Zeichen zu speichern. Genau wie Arrays folgen auch Strings einer nullbasierten Indizierung. Das bedeutet, dass dem ersten Zeichen des Strings ein Indexwert von Null zugewiesen wird. Wir können einzelne Zeichen aus einem String abrufen, indem wir ihre Indizes verwenden. In diesem Tutorial lernen wir, wie das geht.

Holen Sie das Zeichen String mit der Methode charAt() in Java

Die Methode charAt() nimmt einen Indexwert als Parameter und gibt ein an diesem Index im String vorhandenes Zeichen zurück. Es ist die einfachste Methode, um Zeichen aus einem String zu holen und ist eine Methode der Klasse String.

public class Demo {
  public static void main(String[] args) {
    String s = "test string";
    char characterAtIdx1 = s.charAt(1); // character e
    char characterAtIdx4 = s.charAt(4); // whitespace
    char characterAtIdx5 = s.charAt(5); // character s

    System.out.println("The string is: " + s);
    System.out.println("Character at Index 1: " + characterAtIdx1);
    System.out.println("Character at Index 4: " + characterAtIdx4);
    System.out.println("Character at Index 5: " + characterAtIdx5);
  }
}

Ausgabe:

The string is: test string
Character at Index 1: e
Character at Index 4:  
Character at Index 5: s

Wie wir im obigen Code gesehen haben, ist der Rückgabetyp dieser Methode char. Wir können diesen char-Typ mit der Methode toString() der Klasse Character in einen String umwandeln und sogar die Länge dieses Strings mit der Methode length() ermitteln.

public class Demo {
  public static void main(String[] args) {
    String s = "test string";
    char characterAtIdx6 = s.charAt(6); // character t
    String stringAtIdx6 = Character.toString(characterAtIdx6); // char to string
    System.out.println("Length: " + stringAtIdx6.length());
    System.out.println("String: " + stringAtIdx6);
  }
}

Ausgabe:

Length: 1
String: t

Umwandlung eines Zeichens in eine Zeichenkette mit der Methode String.valueOf()

Nachdem wir ein Zeichen aus einem String erhalten haben, können wir bei Bedarf die Methode String.valueOf() verwenden, um ein Zeichen in einen String zu konvertieren.

public class Demo {
  public static void main(String[] args) {
    String s = "test string";
    char characterAtIdx6 = s.charAt(6); // character t
    String stringAtIdx6 = String.valueOf(characterAtIdx6); // char to string

    System.out.println("Length: " + stringAtIdx6.length());
    System.out.println("String: " + stringAtIdx6);
  }
}

Ausgabe:

Length: 1
String: t

Wir können auch einen leeren String mit dem Zeichen verketten, um ihn in einen String umzuwandeln. Anführungszeichen mit nichts dazwischen stellen eine leere Zeichenkette dar. Dies ist einer der einfachsten und implizitsten Wege, um ein String-Objekt in Java zu erhalten.

public class Demo {
  public static void main(String[] args) {
    String s = "test string";
    char characterAtIdx6 = s.charAt(6); // character t
    String stringAtIdx6 = "" + characterAtIdx6; // char to string

    System.out.println("Length: " + stringAtIdx6.length());
    System.out.println("String: " + stringAtIdx6);
  }
}

Ausgabe:

Length: 1
String: t

Abrufen eines Char-Arrays aus einem String in Java

Wir können ein Array-Element anhand seines Index mit Hilfe von eckigen Klammern erhalten. Wenn wir unseren String in ein Array vom Typ char konvertieren, können wir jedes beliebige Zeichen daraus abrufen.

Java bietet eine praktische Methode toCharArray(), die ein char-Array zurückgibt. Wir können diese Methode für einen String verwenden und ein char-Array dafür erhalten.

public class Demo {
  public static void main(String[] args) {
    String s = "test string";
    char[] charArr = s.toCharArray();

    System.out.println("The string is: " + s);
    System.out.println("Character at Index 1: " + charArr[1]);
    System.out.println("Character at Index 4: " + charArr[4]);
    System.out.println("Character at Index 5: " + charArr[5]);
  }
}

Ausgabe:

The string is: test string
Character at Index 1: e
Character at Index 4:  
Character at Index 5: s

Wir können die im vorherigen Abschnitt beschriebenen Methoden verwenden, um das Zeichen in einen String umzuwandeln.

public class Demo {
  public static void main(String[] args) {
    String s = "test string";
    char[] charArr = s.toCharArray();

    char characterAtIdx6 = charArr[6]; // character t
    String str1 = Character.toString(characterAtIdx6); // char to string
    String str2 = String.valueOf(characterAtIdx6); // char to string
    String str3 = "" + characterAtIdx6; // char to string

    System.out.println("Using toString()");
    System.out.println("Length: " + str1.length() + " String: " + str1);

    System.out.println("\nUsing valueOf()");
    System.out.println("Length: " + str2.length() + " String: " + str2);

    System.out.println("\nUsing empty string concatenation");
    System.out.println("Length: " + str3.length() + " String: " + str3);
  }
}

Ausgabe:

Using toString()
Length: 1 String: t
Using valueOf()
Length: 1 String: t
Using empty string concatenation
Length: 1 String: t

Abrufen von Zeichen der ergänzenden mehrsprachigen Ebene (SMP) von Unicode

In einigen seltenen Fällen kann unser String Zeichen enthalten, die in der Basic Unicode Multilingual Plane nicht vorhanden sind. Ein Beispiel könnte eine Reihe von Emojis oder Emoticons sein. Diese Zeichen sind Teil der Unicode Supplementary Multilingual Plane (SMP).

Die obigen Ansätze funktionieren für diese Zeichen nicht. Mit der Methode codePointAt() können wir solche Zeichen aus dem String holen. Diese Methode gibt eine ganze Zahl zurück, die den Unicode-Wert des Zeichens an diesem Index darstellt. Stellen Sie sicher, dass Sie die entsprechende Schriftart installiert haben, um diese Zeichen anzuzeigen.

public class Demo
{
	public static void main(String[] args)
	{
		String s = "😀 the grinning emoji";
		for(int i=0; i<s.length();)
		{
			int codePoint = s.codePointAt(i);
			char[] charArr = Character.toChars(codePoint);//More than one characters may be required to represent an SMP char 
			System.out.print(new String(charArr) + " ");
			
			i = i + Character.charCount(codePoint);//Increase i according to the number of chars required for that SMP char
		}
	}
}

Ausgabe:

😀   t h e   g r i n n i n g   e m o j i 

Wenn wir versuchen, denselben String mit der Methode charAt() zu drucken, erhalten wir die folgende Ausgabe.

public class Demo
{
    public static void main(String args[])
    {
      String s = "😀 the grinning emoji";
		for(int i=0; i<s.length(); i++)
		{
			char c = s.charAt(i);
			System.out.print(c + " ");
		}
    }
}

Ausgabe:

? ?   t h e   g r i n n i n g   e m o j i 

Zusammenfassung

Strings folgen ebenso wie Arrays einer nullbasierten Indizierung. Mit der Methode charAt() können wir einzelne Zeichen aus dem String holen. Wir können den String auch in ein Array von Zeichen konvertieren und dann einzelne Zeichen mithilfe ihrer Indizes abrufen. Wenn Sie das einzelne Zeichen als String und nicht als Zeichen haben möchten, verwenden Sie die Methode Character.toString() oder die Methode String.valueOf(), um es zu konvertieren. Manchmal kann unser String Zeichen außerhalb der Basic Multilingual Plane enthalten. In solchen Fällen können wir die Methode codePointAt() anstelle der Methode charAt() verwenden.

Verwandter Artikel - Java String