我正在一个程序,我从用户的输入,我输入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 –