java - Java中括号内的数字分割

标签 java string split numbers

我想将此输入: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("//(");
}

最佳答案

要编写“那种拆分”代码,您必须:

  1. 声明变量:String[] numberString[] markString numString[] numSplit
  2. num 分割为 ""(空格)。将其分配给numSplit
  3. 使用 i0numSplit.length 循环遍历 numSplit
  4. "(" 的开头到第一次出现,将 number[i] 设置为 numSplit[i]
  5. mark[i] 设置为 numSplit[i],从第一次出现 "(" 后的一个字符到出现前的一个字符结束。
  6. 输出数字标记

完整代码:

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)

请注意,numbermarknumSplitString 数组,因为前导零会被截断不然的话。如果您不介意前导零被切断,那么您可以将 num 更改为 int 数组,将 mark 更改为 double 数组(因为 207.5 中的小数)。

关于java - Java中括号内的数字分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129579/

相关文章:

java - JPA:查询未获取最新数据

java - 将两个值打包到一个 int 中

java - Eclipse错误:org.osgi.framework.BundleException:无法解析模块:org.eclipse.datatools.enablement.ibm.db2.luw.ui

string - 如何在 Windows 上将 OsStr 转换为 &[u8]/Vec<u8> ?

string - antlr 匹配任何字符,除了

Java .split() 越界

java - 检查 null @autowired 字段,并手动初始化它

string - Excel VBA在数字和字母之间插入字符

r - 将数据集文件拆分为特定大小的部分

mysql - 将列 (varchar) 拆分为多个 int 列