1

次のような文字列からいくつかの整数を抽出する必要があります。

22:43:12:45

22、43、12、および 45 を個別の整数として抽出する必要があります。: まで読み取り、22 を抽出するには、文字列メソッドまたはスキャナー メソッドを使用する必要があります。

最初の部分まで抽出できます。問題ありませんが、その後どうすればよいかはわかりません。

どんな助けでも大歓迎です。

4

4 に答える 4

3
String[] parts = str.split(":");
int[] numbers = new int[parts.length];

この String 配列を反復処理して、整数の配列を取得します。

int index = 0;
for(String part : parts)
    numbers[index++] = Integer.parseInt(part);
于 2012-10-19T19:26:36.227 に答える
0

indexOfsubstringの方法のみを使用できますString

String text = "22:43:12:45";
int start = 0;
int colon;
while (start < text.length()) {
    colon = text.indexOf(':', start);
    if (colon < 0) {
        colon = text.length();
    }

    // You can store the returned value somewhere, in a list for example
    Integer.parseInt(text.substring(start, colon)));

    start = colon + 1;
};

スキャナーの使用はさらに簡単です。

String text = "22:43:12:45";
Scanner scanner = new Scanner(text);
scanner.useDelimiter(":");
while (scanner.hasNext()) {
    // Store the returned value somewhere to use it
    scanner.nextInt();
}

ただし、String.splitこれが最短の解決策です。

于 2012-10-19T20:46:48.070 に答える
0

String.split メソッドを見てください。正規表現を指定すると、このメソッドはそれに基づいて文字列を分割します。あなたの場合、正規表現は「:」です

String s ="22:43:12:45";
int i =0;
for (String s1 : s.split(":")) {  // For each string in the resulting split array 
     i = Integer.parseInt(s1);
     System.out.println(i);
}

分割は、文字列が区切られた文字列配列を返します。したがって、この場合、結果の文字列配列は、0 番目の位置に「22」、最初の位置に「43」というようになります。これらを整数に変換するには、文字列を取り、同等の int を与える parseInt メソッドを使用できます。

于 2012-10-19T19:43:05.990 に答える
0

次のような正規表現を作成します

(\d\d):(\d\d):(\d\d):(\d\d)
于 2012-10-19T19:25:39.013 に答える