3

Stringオブジェクトに次のようなデータがあります

Scanner Inlist 1,2,3
 Resolved scan set NotEqual to  Non Scan Set
 Area of intrest equal to Total Intrest
 Initial responder Inlist enter values

ここで、各行を読んだときに単語(Inlist、NotEqual、Inlist)が見つかった場合は、その行を分割して次の行を読む必要があります。

Output would be:

Scanner 
Resolved scan set
Area of intrest
Initial responder

今まで私が試したことは

String filterstringobj=promtchild.toString();
StringTokenizer str=new StringTokenizer(filterstringobj,"");
while(str.hasMoreTokens())
{
    String Inlistremove=str.nextToken("InList");
    if(Inlistremove.length()!=0)
    {                       
         System.out.println(Inlistremove);
         if(Inlistremove.equalsIgnoreCase("InList") && 
            Inlistremove.equalsIgnoreCase("NotEqual") && 
            Inlistremove.equalsIgnoreCase("Equal")
           )
         {
            System.out.println(Inlistremove);
         }
    }
}
4

5 に答える 5

0

コードの 3 つの問題:

StringTokenizer str=new StringTokenizer(filterstringobj,""); 

どちらであるべきか

StringTokenizer str=new StringTokenizer(filterstringobj," "); 

2番目はここにあります:

if(Inlistremove.equalsIgnoreCase("InList") && 
            Inlistremove.equalsIgnoreCase("NotEqual") && 
            Inlistremove.equalsIgnoreCase("Equal")
           )

次のようになります。

if(Inlistremove.equalsIgnoreCase("InList") ||
            Inlistremove.equalsIgnoreCase("NotEqual") || 
            Inlistremove.equalsIgnoreCase("Equal")
           )

3 つ目は、文字列配列の次の行にどのように移動しますか? 解析する別の文字列への移動を組み込むには、コードを少し変更する必要があります。

そのために、関数を作成することをお勧めします。

public static void Parse(String s){ 
   String filterstringobj=s;
   StringTokenizer str=new StringTokenizer(filterstringobj," ");
   while(str.hasMoreTokens())
   {
       String Inlistremove=str.nextToken("InList");
       if(Inlistremove.length()!=0)
       {                       
           System.out.println(Inlistremove);
            if(Inlistremove.equalsIgnoreCase("InList") ||
               Inlistremove.equalsIgnoreCase("NotEqual") ||
               Inlistremove.equalsIgnoreCase("Equal")
            )
           {
               System.out.println(Inlistremove);
               return;
           }
      }
   }
}

main()メソッドでこれを行う:

public static void main(String[] args)
{
    String[] array = new String[3];
    array[0] = "Resolved scan set NotEqual to  Non Scan Set";
    array[1] = "Area of intrest equal to Total Intrest";
    array[2] = "Initial responder Inlist enter values";
    for(int i = 0; i < 3; i++) {
          Parse(array[i]);
    }
}
于 2013-02-01T12:35:21.697 に答える