0

私は初心者のJavaプログラミングクラスにいて、単純であるべきだとわかっていることに行き詰まっていますが、それは私を殺しています. ユーザーは任意の数の x、y 値を入力するように求められ、スペース、タブ、または改行で区切って入力できます。したがって、次のように入力できます。

1.0 1.0 2.0 2.0 3.0 3.0 etc...

また

1.0 (tab) 1.0 (tab) 2.0 (tab) 2.0 (tab) etc...

また

1.0 1.0
2.0 2.0
3.0 3.0

等...

それは素晴らしいことですが、これらの数字を分ける方法がわかりません。x var と ay var を考えていて、これに分けたいのですが、どうすればいいですか? 私の最初の考えはおそらく配列でしたが、まだそれらについても説明していません。これはばかばかしいほど簡単で、見逃しているだけだと思います

4

6 に答える 6

0

これには正規表現を使用する必要があります。文字列内のすべての空白を見つけて、それを分割します。

String[] vals = t1.split("[\\s]+");

\s空白文字の正規表現検索パターンです。

于 2013-02-10T20:10:52.497 に答える
0

入力を文字列として受け取る場合、次のようなことができます

String[] input = inputString.split(" ");

次に、各要素を目的の型に変換します。

于 2013-02-10T20:07:23.693 に答える
0

以下を使用して、文字列をスペースで分割できます。

String[] parts = userinput.split(" ");

以下を使用して、文字列をタブごとに分割できます。

String[] parts = userinput.split("\t");

以下を使用して、改行で文字列を分割できます。

String[] parts = userinput.split("\n");

注: 上記に「/r」を追加する必要がある場合があります\n

したがって、区切り文字を見つけて、上記のいずれか (または必要に応じてそれ以上) を使用して文字列を分割します。

次に、すべてのデータを文字列配列にする必要があります

于 2013-02-10T20:12:18.970 に答える
0

スキャナーの使用を提案できます。入力できる区切りを設定できます。

Scanner s = new Scanner("This is a , test word \n ");
s.useDelimiter(",|\\n");
while(s.hasNext()){
   System.out.println(s.next());
}
于 2013-02-10T20:12:50.097 に答える
0

どうぞ。[ \t]スペースまたはタブを意味する正規表現です。

public static void main(String[] args) throws IOException
{
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  String line = br.readLine();
  while (line != null && !line.isEmpty())
  {
    String[] arr = line.split("[ \t]");
    for (int i = 0; i < arr.length; i += 2)
    {
      doSomething(Double.parseDouble(arr[i]), Double.parseDouble(arr[i+1]));
    }
    line = br.readLine();
  }
}

static void doSomething(double x, double y)
{
  System.out.println("x is "+x+", y is "+y);
}

また、いくつかのエラー チェックを含めることもできます。

于 2013-02-10T20:13:10.503 に答える