我正在一個程序,我從用戶的輸入,我輸入24長度String
與數字0-5和每個數字在該行重複4次。一個例子就是這樣的000011112222333344445555
。我意識到當我收集用戶的號碼時,我無法在2d int array of [6][4]
中收到號碼。這是我想要的,所以我想要做的就是取出該字符串,並將每個數字放在該數組中。所以它看起來像這樣[[0,0,0,0],[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4],[5,5,5,5]]
。我不知道如何讓它們進入像這樣的數組。我知道字符串是不可變的,所以我不能改變字符串,但我確實認爲我可以把字符串變成char
數組,然後將每個值插入到我想要的int數組中。我不知道如何做到這一點,任何幫助或指導如何解決這個問題將非常感激。在此先感謝取一個字符串,並把它變成一個二維數組Java
1
A
回答
3
0
所以,你知道你的字符串必須有4個重複元素,我假設4次重複後,一個新的值如下。對我來說,它看起來像一個N×4陣列。
因此你可以這樣做,現在我將僞代碼來指導你。
INT [] [] myArray的=新INT [str.length/4] [4]
我們把四個,因爲我們知道,如果我們有 「000011112222」 我們的總長度爲12 12/4是3,我們期望3列。 4是我們擁有的柱子數量,我們知道它將只有4.
之後,在這裏我假設你是一個接一個地輸入值,沒有任何分隔符。我們可以這樣做:
int col = 0;
int row = 0;
for(i from 0 to string length) {
if((I+1) % 4 != 0) {
//keep adding to myArray[row][col]
//row++
}
} else { // so we now hit new numbers
col++;
row = 0;
}
}
所以在這裏我試圖堅持只有一個for-loop。我正在考慮用雙for循環來做這件事,但我不確定在這種情況下我會如何處理它,因爲我們最初正在處理一個空數組。
快速編輯,你可以做的一件事,順便說一句。是做一個二維表像這樣:
List<List<String>> strings = new ArrayList<List<String>>()
int index = 0;
while (index < text.length()) {
String pattern = text.substring(index, Math.min(index + 4,text.length()));
List<String> splitPattern = Arrays.asList(pattern.split(""));
strings.add(splitPattern);
index += 4;
}
所以這裏的邏輯是,我們做一個字符串,將它的「」所以沒有什麼。換句話說它只會產生0,0,0,0作爲分隔符是什麼。然後我們將它添加到我們的列表列表中,並通過說strings.get(I).get(j);來訪問它。
1
所以它相當容易做的事情。
lets assume your string is str;
char[] strArr = str.toCharArray();
// numbers is the range like 0 to 5 here.
// repeatCount is how many times its repeating like 4 here.
int arr[][] = new int[numbers][repeatCount];
for(int i = 0; i < numbers; i++){
for(int j = 0; j < repeatCount; j++){
arr[i][j] = strArr[i*repeatCount + j]-'0';
}
}
最後一項預防措施,如果你的數字是個位數,因爲只有一個字符被選擇這個功能纔有效。
1
測試在https://www.compilejava.net/同樣適用,如果你有不同的東西比:
我的輸入與數字0-5 24長度的字符串,並且每個數字是 在線路重複4次
import java.util.ArrayList;
public class HelloWorld
{
public static void main(String[] args)
{
String s = "00001111222233334444555599";
ArrayList<ArrayList<Integer>> collection = new ArrayList<ArrayList<Integer>>();
for (int i = 0; i <= 9; i++){
collection.add(new ArrayList<Integer>());
}
for (int i = 0; i < s.length(); i++){
int c = Character.getNumericValue(s.charAt(i));
collection.get(c).add(c);
}
for (int i = 0; i <= 9; i++){
System.out.println(collection.get(i));
}
System.out.println(collection);
}
}
結果:
[0, 0, 0, 0]
[1, 1, 1, 1]
[2, 2, 2, 2]
[3, 3, 3, 3]
[4, 4, 4, 4]
[5, 5, 5, 5]
[]
[]
[]
[9, 9]
[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5], [], [], [], [9, 9]]
相關問題
- 1. 把一個多維的PHP數組變成一個二維數組
- 2. 將一個字符串分解成一個二維數組
- 3. PHP爆二維數組,並生成一個字符串
- 4. 取一個數字,並將它變成一個數組數組
- 5. 獲取數組值,並把它變成一個變量
- 6. 如何從一個txt文件中讀取一個迷宮,並把它變成二維數組
- 7. 把一個字符串變成plist - swift
- 8. 如何在java中返回一個二維字符串數組?
- 9. 從一個字符串填充一個二維數組,並將單個字符的ASCII值放入它
- 10. randomise一個二維數組與字符?
- 11. 保存輸入字符串字符到一個二維數組
- 12. 從字符串數組創建一個二維數組
- 13. 合併一個維數組的兩成二維數組的JavaScript
- 14. 如何讀取一個字符串文件到一個二維數組
- 15. 把一個紅寶石數組變成一個整齊的列字符串?
- 16. 將兩個1d數組合併成一個二維數組?
- 17. 你如何把一個隨機的字符串,並把每個字母變成一個變量
- 18. 把一個字符串轉換成多個值,二郎
- 19. (C++)把一個字符串的每個字符串,並把它放入一個數組,並獲得所述數組的大小?
- 20. 添加colums形成一個二維數組到另一個二維數組
- 21. 在另一個二維數組中放置一個二維數組java
- 22. 把一個textarea的字符串成組取決於空白
- 23. 取一個字符串,將它變成一些DB命令(C#)
- 24. 轉換多個字符串成一個多維數組
- 25. 把一張桌子放在二維數組中並顯示它
- 26. 如何把一個字符串轉換成整數數組C++
- 27. 初始化一個數字和一個字符到一個二維數組
- 28. 字符串轉換的一維數組爲二維數組
- 29. 把它變成一個jquery函數?
- 30. 創建一個二維字符串數組anArray [2] [2]
你在正確的軌道上,嘗試的東西,然後張貼代碼,我們會解決它。 – SQLMason
好吧,我想即將分毫不差什麼,因爲它的東西我在Java中@DanAndrews所做 – cuber
轉換成翻番,然後利用模量,這樣就可以分別得到每個整數用分提醒,放入和2darray –