首頁  >  文章  >  Java  >  java如何實作取得字串中第一個出現不重複的字符

java如何實作取得字串中第一個出現不重複的字符

王林
王林原創
2019-12-04 16:26:462664瀏覽

java如何實作取得字串中第一個出現不重複的字符

例如:輸入name輸出n,輸入teeter輸出r,輸入namename輸出null

具體實現代碼如下:

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;
      }
    }
  }
}

在線影片教學推薦:java影片

在這個實作程式碼中我們使用了String類別的三個方法成員:

String.length( ):取得字串的長度

String.charAt(int index):取得索引index的字元

String.lastIndexOf(char c ):取得字元c最後一次出現在字串中的索引

String.indexOf(char c):取得字元c第一次出現在字串中的索引

其實我們也可以不使用字串的這些方法就可以實現了,下面是個人使用for迴圈來實現的程式碼:

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;
      }
    }
  }
}

這種方法可以實現,不過這種方法的時間複雜度特別的大,系統開銷也特別大,因此我們最好不要使用循環嵌套,除非迫不得已,不然對系統開銷是很大的。

相關文章教學推薦:java快速入門

#

以上是java如何實作取得字串中第一個出現不重複的字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn