我想将此输入:12132002(177) 012(207.5) 014(184)
拆分为两个数组,如下所示:
num[500] = 12132002,012,014等
和
标记[500] = 177,207.5,184等
事实是,我正在接受这样的用户值,但我不知道他/她将输入的总数。
如何在 Java 中编写这种拆分代码?是这样的吗?
int number[500];
for(int i=0;i<500;i++) {
number=num.split("//(");
}
最佳答案
要编写“那种拆分”代码,您必须:
- 声明变量:
String[] number
、String[] mark
、String num
和String[] numSplit
。 - 将
num
分割为""
(空格)。将其分配给numSplit
。 - 使用
i
从0
到numSplit.length
循环遍历numSplit
。 - 从
"("
的开头到第一次出现,将number[i]
设置为numSplit[i]
。 - 将
mark[i]
设置为numSplit[i]
,从第一次出现"("
后的一个字符到出现前的一个字符结束。 - 输出
数字
和标记
完整代码:
String[] number = new String[500]; //1
String[] mark = new String[500];
String num = "12132002(177) 012(207.5) 014(184)";
String[] numSplit = num.split(" "); //2
for(int i = 0; i < numSplit.length; i++) { //3
number[i] = numSplit[i].substring(0, numSplit[i].indexOf("(")); //4
mark[i] = numSplit[i].substring(numSplit[i].indexOf("(") + 1, numSplit[i].length() - 1); //5
}
for(int i = 0; i < number.length; i++) System.out.println(number[i]); //6
for(int i = 0; i < mark.length; i++) System.out.println(mark[i]);
哪些输出:
12132002
012
014
null (x497)
177
207.5
184
null (x497)
请注意,number
、mark
和 numSplit
是 String
数组,因为前导零会被截断不然的话。如果您不介意前导零被切断,那么您可以将 num
更改为 int
数组,将 mark
更改为 double
数组(因为 207.5
中的小数)。
关于java - Java中括号内的数字分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129579/