ホームページ > Java > &#&ベース > Javaで文字列内の最初の非繰り返し文字を取得する方法

Javaで文字列内の最初の非繰り返し文字を取得する方法

王林
リリース: 2019-12-04 16:26:46
オリジナル
2767 人が閲覧しました

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 クラスの 3 つのメソッド メンバーを使用します。


String.length( ): 文字列の長さを取得します。

#String.charAt(intindex)

: インデックスの文字を取得します。 ##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;
      }
    }
  }
}
ログイン後にコピー
Thisという方法も実装可能ですが、この方法は時間計算量が非常に大きく、システムのオーバーヘッドも非常に大きいため、どうしても必要な場合以外はループの入れ子を使用しない方が良いです。

おすすめの関連記事とチュートリアル:

java クイック スタート

以上がJavaで文字列内の最初の非繰り返し文字を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート