0

文字列を比較したいのですが、次のコードは動作しません。互換性がないからだと思いますが、他に方法はありますか?ありがとうございます!

 public class test
 {
    public static void main(String[] args)
    {
       String str1 = "abc def ghi abc ded abc ghi";
       String str2 = "ghi";
       int count = 0;

         String array[] = str1.split("\t");
         for(int i = 0; i < array.length; i++)
         {
           if(array[i].equals(str2))
           {
             count++;
             System.out.println(array[i]);  
             System.out.println(count);     
           } 

       }//for

      }//main

     }//test
4

4 に答える 4

4

"\t"(タブ)で分割しているように見えますが、文字列は" "(スペース)で区切られています。array[] = str1.split(" ");代わりにStringを試してください。

于 2012-07-22T16:39:28.513 に答える
1

使用しない で、代わりに使用してください、そしてそれは動作し"\t"ます....。" "

"\t"スペースの代わりに使用した場合にのみ役立ちます。"tab"

今これを試してみてください。

public class T
{
   public static void main(String[] args)
   {
      String str1 = "abc def ghi abc ded abc ghi";
      String str2 = "ghi";
      int count = 0;

        String array[] = str1.split(" ");
        for(int i = 0; i < array.length; i++)
        {
          if(array[i].equals(str2))
          {
            count++;
            System.out.println(array[i]);  
            System.out.println(count);     
          } 

      }//for

     }//main

    }//test
于 2012-07-22T16:40:49.940 に答える
1

文字列には、アイテムの出現を見つけるのに役立つメソッドが含まれています。あなたの場合、str1.contains(str2)

于 2012-07-22T16:42:44.010 に答える
1

splitを使用したくない場合は、StringTokenizerクラスも使用できます。http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.htmlこれが最も便利だと思います。このように、文字列ごとにStringTokenizerを作成できます。

StringTokenizer st1 = new StringTokenizer(str1," ");

str1の後の""は、解析する対象を示します。したがって、コンマ、ダッシュ、数字、文字などで解析したい場合は、そこに置いてください。

次に、次のように検出されたトークンの数に基づいて配列を作成します。

String[] array1 = new String[st1.countTokens()];

次のように配列を入力します。

for(int i=0;i<st1.countTokens();i++)
{  
    array1[i]=st1.nextToken(); 
}

同様にstr2でこれを行い、このように比較することができます!これは、あなたが尋ねたようにこれを行うための別の方法です。それ以外の場合、「/ t」を「」に変更すると、他の回答で述べられているように分割で機能します。

お役に立てれば!

于 2012-07-22T16:56:38.897 に答える