Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可以设置if语句来搜索文本文件中的特定模式吗?_Java_Algorithm_If Statement_Text Files_Fractions - Fatal编程技术网

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

Java 可以设置if语句来搜索文本文件中的特定模式吗?,java,algorithm,if-statement,text-files,fractions,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\uu/\u anynumber”或“anynumber\u anynumber/anynu

我正在从事一个java项目,该项目与分数有关。现在在这个项目中,我必须从一个文本文件中拿出一个分数列表,根据这一行,我必须对它们进行简化、加、减、乘和除。 文本文件的一部分:

-16/6
-7/2
-17
+20 4/2 / +8 4/8
-17/15 + +14/17
+17 5/14 + -2
现在我的问题是,当我从文本文件中拉出一行并读取它时,有没有一种方法来设置if语句或查找“anynumber\uu/\u anynumber”或“anynumber\u 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],这个
循环将它们全部打印出来,这样您就可以看到标记器是如何工作的。
然后,您可以将所有操作数和运算符放在堆栈上,并添加相应的逻辑以从那里计算它们。如果你要求一个具体的方法,你应该提供更多关于你的项目的细节。你想做什么有点不清楚。看起来您想要创建一个表达式计算器程序,但是您还声明希望有一个程序在文件中搜索除法表达式

您可以查看每个令牌

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

您可以使用
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],这个
循环将它们全部打印出来,这样您就可以看到标记器是如何工作的。
然后,您可以将所有操作数和运算符放在堆栈上,并添加相应的逻辑以从那里计算它们。如果你要求一个具体的方法,你应该提供更多关于你的项目的细节。你想做什么有点不清楚。看起来您想要创建一个表达式计算器程序,但是您还声明希望有一个程序在文件中搜索除法表达式

您可以查看每个令牌

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

到目前为止你试过什么?你有代码吗?如果是这样,请在此处发布相关部分。查找
String#split
方法或正则表达式。您可以使用此正则表达式匹配您的模式[-+\d\/]+非常感谢,它现在工作得很好。基本上我所做的只是搜索模式,然后做数学运算。再次感谢你。到目前为止你都试了些什么?你有代码吗?如果是这样,请在此处发布相关部分。查找
String#split
方法或正则表达式。您可以使用此正则表达式匹配您的模式[-+\d\/]+非常感谢,它现在工作得很好。基本上我所做的只是搜索模式,然后做数学运算。再次非常感谢。谢谢你,你帮了我很大的忙。它100%有效。谢谢你,你帮了我很大的忙。它的效果是100%。