java - 查找括号内的数字

标签 java

作为我项目的一部分,我需要能够在这些括号内添加数字,我已经研究了很长时间但没有结果,我将不胜感激任何帮助

String[] s = "1 2 3 ( 4 5 6 ) * 1000 7 8".split("\\s");

例如,本例中有 3 个数字

这是我到目前为止所拥有的:

while(st.hasMoreTokens()) {
    if ( st.nextToken() != "(" )
        count = count +1 ;
}
if ( st.nextToken() == "(" )
    while (st.nextToken() != ")") {
        count2 = count2 + 1;
    }
System.out.println(count); System.out.println(count2);
}

最佳答案

不太了解这里的用例。假设你总是只有一组括号[“(”和“)”],永远不会有括号不匹配,并且你不关心括号外的其他数字/数字/运算符,简单的方法在括号之间添加数字将是

String mainStr = "1 2 3 ( 4 5 6 ) * 1000 7 8";
String []inside = mainStr.substring(mainStr.indexOf("(")+1, mainStr.indexOf(")")
                  .split("\s");
int sum = 0;
int innerNum = 0;
for (int i=0; i<inside.length;i++) {
    try {
        innerNum = Integer.parseInt(inside[i]);
    } catch (NumberFormatException e) {
        innerNum = 0;
    }
    sum = sum + innerNum; 
}
return sum;

对于多组括号(不嵌套),我们可以循环 mainStr 来获取下一组,并以相同的方式进行

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

相关文章:

java - 应用程序在第二个 Activity 的 setContentView() 上崩溃

java - 使用 java 中的 gson 库将过滤后的 JSON 数据从一个文件复制到另一个文件

java - 显示带有 s :iterator in Struts 2 的表

java - 在 Java 中将 long(原始类型)写入文件

java - 如何调用这个实例方法

java - Spring 网 react 无法表现出背压

java - 向 JButton 添加第二个边框

java - Spring Boot 多个文件上传多个对象

java - 将 Cookie 的安全设置为 true

java - 循环依赖阻止在 Tomcat 上进行 war 部署