回答
你得去迭代你的字符串的每个字符来实现这一目标:
String str = "1234";
int[] array = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
array[i] = Character.digit(str.charAt(i), 10);
// or
// array[i] = Integer.parseInt(str[i]);
}
编辑
如果你真的想没有循环:
String str = "123,456,789";
String[] arr = str.split(",");
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(Integer.parseInt(arr[0]));
list.add(Integer.parseInt(arr[1]));
list.add(Integer.parseInt(arr[2]));
但是你得去首先知道Integer的数量,如果你不需要循环。
写在我的问题我不需要任何循环。 解决方案如 String str =“123,456,789”; 列表
@yogeshprajapati你能告诉我们原因吗? – talnicolas 2012-04-03 13:12:24
@ talnicolas原因是因为我有条目lacs,所以我不想循环每个。 – 2012-04-03 13:15:19
据我所知 - 没有。没有简单的方法,因为String只是一个char [],它只能通过ascii映射到整数。你可以得到一个字符串数组,假设你有一个分隔符,然后用一个将字符串转换为int的函数来引用String数组的每个索引,但是坦率地说,你正在使它对自己来说更难......
例如
String myEncodedInts = "7,14,12,9,3";
String[] myIntsAsStrings = myEncodedInts.split(",");
//...
int someReferenceAtSomeLaterPoint = Integer.parseInt(myIntsAsStrings[myReferenceIndex]);
但没有办法(我知道的),只是转换的String []为int []不只是躲在里面其他一些方法中的循环...
我希望列表
@yogeshprajapati所以你不想要一个int数组,但一个List,请更正你的问题。 – talnicolas 2012-04-03 13:19:55
这种无关紧要 - 如果没有循环,仍然没有办法做到这一点。也许如果你解释了为什么你不想要一个循环,那么我们可以通过一些方法来避免你不想要循环的理由。 “ – 2012-04-03 13:22:27
没有循环(可见)...但它真的值得吗?
import static org.hamcrest.MatcherAssert.assertThat;
import org.hamcrest.collection.IsArrayContainingInOrder;
import com.google.common.base.Function;
import com.google.common.base.Splitter;
import com.google.common.collect.Iterables;
@Test
public void testDecompose() {
final String input = "1,2,3,4";
Integer arr [] = Iterables.toArray(Iterables.transform(Splitter.on(",").split(input), new Function<String,Integer>(){
@Override public Integer apply(String input) {
return Integer.parseInt(input);
}}), Integer.class);
assertThat(arr, IsArrayContainingInOrder.arrayContaining(1,2,3,4));
}
要获得Collection<Integer>
或List<Integer>
这是更简单 - 因为你会从transform
越来越Iterable<Integer>
:
@Test
public void testDecompose() {
final String input = "1,2,3,4";
List<Integer> l = Lists.newArrayList(Iterables.transform(Splitter.on(",").split(input), new Function<String,Integer>(){
@Override public Integer apply(String input) {
return Integer.parseInt(input);
}}));
assertThat(l, IsCollectionContaining.hasItems(1,2,3,4));
}
”但真的值得吗?“没有;)但+1的努力;)据我猜,这仍然是循环内部只是做parseInt作为'分割器'循环的一部分? – 2012-04-03 13:23:38
望着评论约杰什已经加入到@马特研究员答案:
'我想要列表中的所有元素。 - yogesh prajapati'
编写由数组支持的List的自定义实现,并在访问项时进行类型转换。
不在视线单环......但随后的@Nick指出...你可能需要学习一些关于递归:
private static void getNumbers(List<String> asList, List<Integer> myList) {
if (asList.isEmpty()) {
return;
} else {
String remove = asList.remove(0);
myList.add(Integer.parseInt(remove));
getNumbers(asList, myList);
}
}
而且调用代码:
String numbers = "1,2,3,4,5,6,7,8,9";
List<String> inputList = new ArrayList<String>();
inputList.addAll(Arrays.asList(numbers.split(",")));
List<Integer> outputList = new ArrayList<Integer>();
getNumbers(inputList, outputList);
System.out.println(outputList);
public toInts(String[] strings, int[] ints, int start) {
if (start > strings.length - 2) {
return;
}
ints[start] = Integer.parseInt(strings[start]);
toInts(string, ints, start+1);
}
...
int[] ints = new int[3];
String[] strings = new String[]{"1", "2", "3"};
toInts(strings, ints, 0);
在那里,没有迭代。
但是,严重的人,任何解决方案将有某种形式的迭代(或递归)在某一点。
- 1. 意外输出而分裂和解析字符串转换成int(Java)的
- 2. 转换字符串转换成阵列而不夫特3
- 3. 转换阵列字符串为int angularjs
- 4. Java字符串循环阵列空
- 5. 解析字符串数组转换成int矩阵
- 6. 转换字符串转换成int()
- 7. 转换INT字符转换成int不需要在Java
- 8. 字符串转换成阵列
- 9. 的JavaScript字符串转换成INT
- 10. C++转换的阵列的一部分转换成int
- 11. 分割字符串转换成数字阵列
- 12. 字符串到int转换的列表
- 13. 转换的java字符串转换成JavaScript字符串
- 14. 而将字符串转换为int后
- 15. 我如何转换逗号分隔字符串转换成列表<int>
- 16. 将一个字符串转换成INT
- 17. 将一个字符串转换成int
- 18. 字符串转换成int数组中的Java
- 19. 分割一个字符串转换成不同的字符串
- 20. 将字符串转换为int,根据foreach循环检查int的总和
- 21. Matlab的字符串转换为阵列
- 22. 不能转换INT为String,/不能把字符串转换成int [] []
- 23. 转换为int分割字符串
- 24. 划分字符串并转换为Int
- 25. 转换一个字符串转换成阵列
- 26. 转换一个javascript字符串转换成2维阵列
- 27. 字符串不能转换成分
- 28. PostgreSQL的:转换阵列到字符串,分隔符
- 29. “输入字符串的不正确的格式”转换成int
- 30. 分裂阵列分隔成字符串
我不确定我在追随,你有'String []'而且你想让它成为'int []'吗?或者是'String'到'int []'?或者你想要一个'Integer []'作为结果?请更具体地说明你准备实现什么* – amit 2012-04-03 13:08:45
你有哪种字符串?你蚂蚁分解哪种方式? – 2012-04-03 13:09:10
为什么限制一个循环?循环做这件事最有可能是最直接的解决方案。 – Jim 2012-04-03 13:10:41