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;
}

解决此问题的最佳方法是什么?我猜迭代字符串数组并将它们转换为整数并不是最好的解决方案。

我也可以创建一个新的 splitByDelimiter 返回一个 int 数组,但我猜有比这更好的解决方案..

这是您可以使用泛型的情况吗(我对泛型没有很多经验)?

谢谢 :)

4

2 回答 2

3

您需要将字符串数组显式转换为 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 回答