回答
你得去迭代你的字符串的每個字符來實現這一目標:
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