1

JTextField を介してコマンドを入力できるコンソールのような小さなプログラムがあります。

入力が文字列に変換されるように多くのコマンドが書き込まれています > そして、コマンドが IP 属性 (ping 192.168.1.1) に ping のようなものを持っている場合、サブストリング 5 (ping ) が、(command atr1 のようないくつかの属性が必要な場合) art22 atr333 art4444) と私は得るだろう

String command = "command"; //I can make this one
String attribute1 = "atr1"; //I can make this one
String attribute2 = "atr22";
String attribute3 = "atr333";

などですが、その属性の長さに関係なく...部分文字列ですべてを達成できるため、長さが定義されます!

4

3 に答える 3

5

使用できますString.split

String cmd = "command atr1 art22 atr333 art4444";
String[] parts = cmd.split(" ");

split メソッドでは、正規表現を使用できます。これは、たとえば、空白の量が変化する場合に役立ちます。

String cmd = "command        atr1   art22 atr333     art4444";
String[] parts = cmd.split(" +"); // split by spans of one or more spaces
于 2013-06-20T12:19:00.773 に答える
1

ここにいくつかのオプションがあり、簡単/最終的に面倒なものから強力/習得が難しいものまで分類されています

  • "your command pattern".split( " " ) は、文字列の配列を提供します
  • java.util.Scannerトークンを次々に取り出すことができ、nextInt()またはのような解析のための便利なヘルパーがいくつかありますnextFloat()
  • commons cliのようなコマンド ライン パーサー ライブラリ。これらは学ぶのに少し手間がかかりますが、すぐに直面する他の問題を解決するという利点があります:)

ps 一般に、インターネットでより多くのヘルプを見つけるために、探している検索用語は「Java 解析コマンド ライン引数」です。

于 2013-06-20T12:25:32.990 に答える
0

または、このStringTokenizer クラスを試してください

StringTokenizer st = new StringTokenizer("これはテストです");
     while (st.hasMoreTokens()) {
         System.out.println(st.nextToken());
     }

于 2013-06-20T12:26:30.517 に答える