在 for 循环中读取拆分
reading a split in a for loop
最近我创建了一种方法,通过拆分方程来读取方程,然后进入一个循环,读取它所在的部分以查找符号并给出符号前后的数字。问题是我确实遇到了一个错误,但它在我看到它之前就消失了,如果我是正确的,java 在拆分后无法读取 + 号。我不确定在不知道它是什么类型的情况下如何捕获异常,所以任何帮助都会很好。谢谢
private void sortEquasion(){
String[] t = Equasion.split("\+"); // this line added on
for(int counter = 0; counter<t.length; counter++){ // this part added
if(t[counter].contains("+")){
String i = t[counter -1];
String i2 = t[counter + 1];
System.out.println(i + i2);
}
}
//if(Equasion.contains("(")){ //untage this if code above does not work
//}
}
不确定您看到的是哪个错误。但是如果你拆分一个字符,这个字符将不会出现在结果数组的任何字符串中。例如下面的代码:
public static void main(String[] args) {
String equation = "1 + 2 = 3";
for (String s : equation.split("\+")) {
System.out.println( s );
}
}
将导致输出:
1
2 = 3
另请注意,正如有人所说,有一个带有索引的 for 循环:
for (counter i = 0; i < counter.length; counter++) {
// bad: index out of bounds exception on last iteration
String s = t[counter + 1];
}
但这不应该是您看到的异常,因为该代码不应该被执行,因为拆分会删除所有 +
。如果您的代码抛出异常(或错误)但您不知道它是什么(并且由于某种原因它被吞没),您可以使用 try catch 结构:
try {
... // do stuff
} catch ( Throwable thrown ) {
thrown.printStackTrace();
}
不过请注意,捕获 Throwable
通常是不好的做法,并且一揽子捕获 所有 异常通常也是一个坏主意。对于实际代码,请尝试捕获特定的异常类型。
调试它的 easiest/best 方法应该是在 IDE 中设置断点并单步执行代码。我的猜测(没有看到其余代码)是您的 error/exception 来自其他代码段。
最近我创建了一种方法,通过拆分方程来读取方程,然后进入一个循环,读取它所在的部分以查找符号并给出符号前后的数字。问题是我确实遇到了一个错误,但它在我看到它之前就消失了,如果我是正确的,java 在拆分后无法读取 + 号。我不确定在不知道它是什么类型的情况下如何捕获异常,所以任何帮助都会很好。谢谢
private void sortEquasion(){
String[] t = Equasion.split("\+"); // this line added on
for(int counter = 0; counter<t.length; counter++){ // this part added
if(t[counter].contains("+")){
String i = t[counter -1];
String i2 = t[counter + 1];
System.out.println(i + i2);
}
}
//if(Equasion.contains("(")){ //untage this if code above does not work
//}
}
不确定您看到的是哪个错误。但是如果你拆分一个字符,这个字符将不会出现在结果数组的任何字符串中。例如下面的代码:
public static void main(String[] args) {
String equation = "1 + 2 = 3";
for (String s : equation.split("\+")) {
System.out.println( s );
}
}
将导致输出:
1
2 = 3
另请注意,正如有人所说,有一个带有索引的 for 循环:
for (counter i = 0; i < counter.length; counter++) {
// bad: index out of bounds exception on last iteration
String s = t[counter + 1];
}
但这不应该是您看到的异常,因为该代码不应该被执行,因为拆分会删除所有 +
。如果您的代码抛出异常(或错误)但您不知道它是什么(并且由于某种原因它被吞没),您可以使用 try catch 结构:
try {
... // do stuff
} catch ( Throwable thrown ) {
thrown.printStackTrace();
}
不过请注意,捕获 Throwable
通常是不好的做法,并且一揽子捕获 所有 异常通常也是一个坏主意。对于实际代码,请尝试捕获特定的异常类型。
调试它的 easiest/best 方法应该是在 IDE 中设置断点并单步执行代码。我的猜测(没有看到其余代码)是您的 error/exception 来自其他代码段。