java - 可以设置 if 语句来搜索文本文件中的特定模式吗?

标签 java algorithm if-statement text-files fractions

我正在用 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/

相关文章:

java - html <form> 标签引用 "super"表单标签 - 可能吗?

java - 我在 sql 中自动生成的 id 看起来像 : 1, 101, 201.... 我该如何修复它?

java - 关于重新排序 : Why this code throws RuntimeException despite using the volatile?

java - 使用字符串的 if 语句

if-statement - 如何在jmeter的if Controller 中使用属性变量

C while循环仅在语句为真时运行?

java - Camunda BPM Spring boot 无法在 weblogic 中启动 - 也许是 Jersey 问题

c++ - 如何检测两个 3D 点云之间的差异?

algorithm - 算法的渐近分析 :how to insert k new elements into a sorted list of size n in time O(k log k + n)

sql - 以编程方式确定SQL中所需的JOIN语句系列