0

特定の区切り文字で分割したい文字列があります

private int [] mMaxValues;

    public void setMaximum(String maximum) {
       mMaxValues = splitByDelimiter(maximum, ":");
    }

ただし、splitByDelimiterメソッドは文字列配列をint配列に返します

public String[] splitByDelimiter(String list,String delimiter) {
    String[] items = list.split("\\" + delimiter);

    for (String s : items) {
        s.trim();
    }

    return items;
}

この問題を解決するための最良の方法は何ですか?文字列配列を繰り返して整数にキャストするのは最善の解決策ではないと思います。

int配列を返す新しいsplitByDelimiterを作成することもできますが、それよりも優れた解決策があると思います。

これはジェネリックを使用できる状況ですか(ジェネリックの経験はあまりありません)?

どうも :)

4

2 に答える 2

3

string 配列を int 配列に明示的に変換する必要があります。使用する:

public void setMaximum(String maximum) {
   Strin[] array = splitByDelimiter(maximum, ":");
   int i = 0;
   mMaxValues = new int[array.length];
   for (String value : array) {
       mMaxValues[i] = Integer.parseInt(value);
       i++;
   }
}

また、次の原因となる可能性のあるいくつかのケースを処理する必要がありますNullPointerException

  1. maximum無効です
  2. array無効です
  3. NumberFormatException解析中に発生する可能性がある場合はInteger.parseInt(value)、処理してください。
于 2012-09-07T09:33:01.850 に答える
1

文字列配列をループして、int配列に格納します。

String input = ...;
String[] parts = input.split(':');
int[] result = new int[parts.length];
for (int n = 0; n < parts.length; ++n)
{
  result[n] = Integer.parseInt(parts[n]);
}
return result
于 2012-09-07T09:29:53.473 に答える