gpt4 book ai didi

java - 根据特定条件将传入数据排列到表中

转载 作者:行者123 更新时间:2023-12-01 12:36:59 24 4
gpt4 key购买 nike

我有一个示例文本文件,它基本上是一个 java 程序。我的任务是编写一个程序,可以读取文本文件的每一行并确定它是否是赋值语句。如果它是一个赋值语句,那么我需要打印出该赋值语句中使用的变量名称。这是我需要的期望输出:

ASSIGNMENT STATEMENT       LEFT        RIGHT
data=5; data
one=data; one data
x=5.6; x
test =(x+5.4)+one/x test x.one,x
age=3.5; age
number = 0.2*(age-10); number age
x=x+num; x x,num

我陷入困境的地方是我从第 5 行提取 x, one, x 和 的部分。以及如何防止数字被打印。就像 data =5 一样,我如何只打印数据并跳过 5?

有人可以帮忙吗?

最佳答案

您尝试过使用正则表达式吗?

String test = "(x+5.4)+one/x";
//regex: [0-9\"\/\,\(\)\+\-\*\.]+
test = test.replaceAll("[0-9\\\"\\/\\,\\(\\)\\+\\-\\*\\.]+",",");
System.out.println(test);

输出:

,x,one,x

如果需要,您可以使用以下方法替换第一个(最后一个)逗号:

test = test.replaceAll("^,", "").replaceAll(",$", "");

一些解释:

  1. ^ 表示测试字符串的开头,
  2. $代表结束
  3. [characters]+ 表示我们正在寻找字符串的一部分(+)包含来自 [] 的字符。
  4. 如果没有 +,它只会从 [] 中查找一个字符。
  5. 0-9 表示所有数字(范围从 09)
  6. 您需要在每个特殊字符前添加 \,即所有这些 "、'\/()+-*。
  7. 在 Java 中,您需要在此正则表达式 \ 之前添加额外的 \

您可以测试/修改它here .

编辑评论示例:

String tem = "(x + 5.4)+ one/x"; 
tem=tem.replaceAll("[0-9\\\"\\/\\,\\(\\)\\+\\-\\*\\.\\s]+",","); //here added \\s, and comma in second param. Without comma all params will be glued together.
tem=tem.replaceAll("^,","").replaceAll(",$",""); //here you had space in second param of first replaceAll. Thats why the output was " xonex" - the space at the beginnig.
System.out.println(tem);

输出:

x,one,x

如果将 \s 添加到正则表达式(在 Java 中必须是 \\s) - 其正则表达式为 space.注意大小写 - \S 表示除 空格 之外的所有内容。

还要注意 replaceAll() 方法的第二个参数(",")。这是您想要插入的字符串来代替找到的正则表达式(第一个参数)。因此,如果您的参数要用逗号分隔,则必须使用 "," 作为第二个参数。如果您想删除某些内容(例如在本例的第二部分中,我们从 and and 开始删除逗号),那么您可以将 "" 作为第二个参数。

关于java - 根据特定条件将传入数据排列到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25491356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com