我有一个字符串,我想用某个分隔符
分割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数组,但我猜测有一个更好的解决方案..
这是一种你可以使用泛型的情况(我对泛型有很多经验)吗?
Thx :)
答案 0 :(得分: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
的几个案例:
maximum
为空array
为空NumberFormatException
时可能会引发Integer.parseInt(value)
,处理它。答案 1 :(得分: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