1

こんにちは、この文字列「Ronald Andrade」を StringTokenizer を使用して 2 つの変数に分割したいと考えています。

私はこのコードを持っています:

package domApli;
import java.util.StringTokenizer;

public class string {

public static void main(String[] args) {



    String paciente = "Ronald Andrade";
    String linea = paciente;
    StringTokenizer tokens = new StringTokenizer(linea);
    String a= "";
    while(tokens.hasMoreTokens()){
        a+=tokens.nextToken();
    }

    System.out.print(a);

}

}

私はこのようなものが欲しい:

String x = "Ronald";
String y = "Andrade";
4

2 に答える 2

3

次のように、クラスでsplit()見つかったメソッドを使用することをお勧めします。String

String[] data = paciente.split("\\s+");
String x = data[0];  // x = "Ronald"
String y = data[1];  // y = "Andrade"

すべての実用的な目的のために、StringTokenizer非推奨であり、使用を中止する必要があります。

StringTokenizer は、新しいコードでの使用は推奨されていませんが、互換性のために保持されているレガシー クラスです。この機能が必要な場合は、代わりに String の split メソッドまたは java.util.regex パッケージを使用することをお勧めします。

于 2012-06-11T21:33:32.187 に答える
1

投稿したコードは、入力と同じ結果になります。必要な結果を得るには、次のコードを試してください。

public static void main(String[] args) {

String paciente = "Ronald Andrade";
String linea = paciente;
StringTokenizer tokens = new StringTokenizer(linea);
String x= "";
String y= "";
int i = 0;
while(tokens.hasMoreTokens()){
 if ( i = 0) {
         x = tokens.nextToken();
  }
  i = i+1;
 else
  {
      y = tokens.nextToken();
   }

}

System.out.print(x);
 System.out.print(y);

}

ただし、これは非常に粗雑で非効率的な方法です。分割機能の方がいいです。サブストリング関数を使用することもできます。どちらも十分に速いです。

于 2012-06-11T21:41:06.670 に答える