我正在用 Java 开发一个与分数有关的项目。现在在这个项目中,我必须从文本文件中取出一个分数列表,并且根据那一行我必须对它们进行简化、加、减、乘和除。 部分文本文件:
-16/6
-7/2
-17
+20 4/2 / +8 4/8
-17/15 + +14/17
+17 5/14 + -2
现在我的问题是,当我从文本文件中拉出一行并读取它时,有没有一种方法可以设置一个 if 语句或其他东西来查找“anynumber_/_anynumber”或“anynumber_anynumber/anynumber”。
如果不是,去除分数的最佳方法是什么?
最佳答案
您可以使用 StringTokenizer
类。我在这里使用您的示例。
String nextLine = "-17/15 + +14/17"; //you read in each line as a String
String delimiters = "+-*/ ";
StringTokenizer st = new StringTokenizer(nextLine, delimiters, true);
while(st.hasMoreElements()){
System.out.println(st.nextElement());
}
它将分为 [ - , 17 ,/, 15 , , + , , + , 14 ,/, 17 ] ,这个 while
循环将它们全部打印出来所以你可以看到分词器是如何作品。
然后,您可以将所有操作数和运算符放在堆栈上,并添加逻辑以从那里相应地评估它们。如果您要求特定的方法,您应该提供有关您的项目的更多详细信息。它有点不清楚你想做什么。看起来您想创建一个表达式计算器程序,但随后您还声明您想要一个程序来搜索文件中的除法表达式。
你可以查看每个 token
if(st.nextElement.equals("+"));
if(st.nextElement.equals("-"));
if(st.nextElement.equals("/"));
if(st.nextElement.equals("*"));
if(st.nextElement.equals(" ")); //whitespace
else; //else it is a number
关于java - 可以设置 if 语句来搜索文本文件中的特定模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36799716/