-4

この文字列を2Dブール配列に入れて出力する方法について誰かがコードを見せてくれないかと思っています。

例:「0-1 0-2 1-2 1-3 2-3」、ただし、文字列は「0-1 1-2 2-3 3-0 0-40-111-」のようにさらに複雑になる可能性があります。 5 1-6 2-7 2-8 3-9 3-10 4-5 6-7 8-9 10-11 4-7 4-8 5-9 5-10 6-9 6-10 7-11 8 -11インチ

例としては、0-1が真、0-2が真、1-2が真、1-3が真、2-3が真、他のすべての位置が偽である必要があります。

4

1 に答える 1

1

booleanそれらを2D配列に入れるとはどういう意味かわかりません。テキストの解析に問題がある場合は、使用できるコードのスニペットを次に示します。

最初の解決策では、数値は常にペアであり、単一ので区切られていると想定し、-スペースを使用して数値のペアを区切ります。

標準入力から読み取る場合は、これを使用します。

Scanner scanner = new Scanner(System.in);

Stringにすべての数値が含まれていて、それを処理する場合は、これを使用します(変数の名前をinputString):

Scanner scanner = new Scanner(inputString);

次に、入力から数値を読み取ることができます。

while (scanner.hasNext()) {
    String pair = scanner.next();
    // Split by the hyphen
    String tokens[] = pair.split("-");

    // Normally, one should check the array before accessing it
    // I currently assume the input is valid
    int first = Integer.parseInt(tokens[0]);
    int second = Integer.parseInt(tokens[1]);

    // Do whatever you want with the 2 numbers extracted
}

または、useDelimiter-を使用して区切り文字として追加し、個別nextIntに処理することなく番号を読み取るために使用することもできます。-

scanner.useDelimiter("[\\p{javaWhitespace}-]+");

コードは単純に次のようになります。

scanner.useDelimiter("[\\p{javaWhitespace}-]+");

while (scanner.hasNext()) {
    int first = scanner.nextInt();
    int second = scanner.nextInt();

    // Do whatever you want with the 2 numbers extracted
}

コードはよりクリーンですが、と-の間に表示されるか、いくつ表示されるか、または数字のペアの間の唯一の文字が表示されないかどうかは、現在不明です。入力形式が正しいと仮定すればOKです。ただし、その仮定が与えられていない場合、入力の検証を行うことはできません。firstsecond-

于 2012-12-05T02:06:14.757 に答える