Heim  >  Artikel  >  Java  >  So erhalten Sie das erste sich nicht wiederholende Zeichen in einer Zeichenfolge in Java

So erhalten Sie das erste sich nicht wiederholende Zeichen in einer Zeichenfolge in Java

王林
王林Original
2019-12-04 16:26:462739Durchsuche

So erhalten Sie das erste sich nicht wiederholende Zeichen in einer Zeichenfolge in Java

Zum Beispiel: Eingabename und Ausgabe n, Eingabewippe und Ausgabe r, Eingabenamename und Ausgabe null

Der spezifische Implementierungscode lautet wie folgt:

import java.util.Scanner;
public class Main
{
  public static void main(String[] args)
  {
    Scanner in = new Scanner(System.in);
    String str = in.next();
    for(int i =0 ; i < str.length() ; i++)
    {
      if(str.lastIndexOf(str.char(i)) == i && 
      str.indexOf(str.char(i)) == i)
      {
        System.out.println(str.char(i));
        break;
      }
    }
  }
}

Online empfohlenes Video-Tutorial: Java-Video

In diesem Implementierungscode verwenden wir drei Methodenmitglieder der String-Klasse:

String.length(): Holen Sie sich eine Zeichenfolge mit der Länge von

String.charAt(int index): Holen Sie sich das Zeichen des Index index

String.lastIndexOf(char c): Holen Sie sich den Index des letzten Mals, als das Zeichen c in der Zeichenfolge

vorkam

String.indexOf(char c): Holen Sie sich den Index, an dem das Zeichen c zuerst in der Zeichenfolge erscheint.

Tatsächlich können wir dies auch erreichen, ohne diese Zeichenfolgenmethoden zu verwenden. Das Folgende ist der Code, für den ich persönlich a verwende Zu implementierende Schleife:

import java.util.Scanner;
public class Main
{
  public static void main(String[] args)
  {
    Scanner in = new Scanner(System.in);
    String str = in.next();
    char[] cb = new char[str.length()];
    //将字符串中的字符一次存入cb[]
    for(int i =0 ;i <str.length() ; i++)
    {
      cb[i] = str.charAt(i);
    }
    for(int i = 0 ; i < str.length() ; i++)
    {
      for(int j = 0 ; j < str.length() ; j++)
      {
        if(cb[i] == cb[j] && cb[i] != &#39;0&#39;)
        {
          char c = cb[i];
          for(int z = 0 ; z < str.length() ; z++)
          {
            if(cb[z] == c)
              cb[z] = &#39;0&#39;;
          }
        }
      }
    }
    for(int i = 0 ; i <str.length() ; i++)
    {
      if(cb[i] != &#39;0&#39;)
      {
        System.out.println(cb[i]);
        break;
      }
    }
  }
}

Diese Methode kann implementiert werden, aber die zeitliche Komplexität dieser Methode ist sehr groß und der Systemaufwand ist auch sehr groß. Daher ist es am besten, keine Schleifenverschachtelung zu verwenden, es sei denn, dies ist absolut der Fall erforderlich, da sonst der Systemaufwand sehr groß ist.

Empfohlene verwandte Artikel und Tutorials: Schnellstart mit Java

Das obige ist der detaillierte Inhalt vonSo erhalten Sie das erste sich nicht wiederholende Zeichen in einer Zeichenfolge in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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