java - 划分和比较两个字符串
问题描述
我正在构建一个解释器,它正在逐行阅读。现在让我们假设 A 是一个声明变量,如果解释器只找到字母 a,它将显示它的值,但如果找到“a”我只想显示 a。
我不知道如何让解释器识别“a”。然后消除“”,然后只计算字母a。
//the line below doesn't work
if(comands[i].equals("\"" + var[position].getNome() + "\"")){
System.out.print(var[position].getName() + " ");
}
解决方案
您可以首先识别双引号中的所有字符串并将其设为列表,然后将其与您声明的变量匹配。
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringContains {
public static void main(String args[]) {
String fileData = "Welcome! to A \"A\" \"What A DAY\"";
String declaredVariable = "A";
Pattern p = Pattern.compile("\"([^\"]*)\"");
Matcher m = p.matcher(fileData);
List<String> stringList = new ArrayList<>();
while (m.find()) {
stringList.add(m.group(1));
}
for(String s : stringList) {
if(s.matches(declaredVariable)) {
System.out.println(s);
}
}
}
}
推荐阅读
- tensorflow - 加快 GPT2 的推理时间 - 优化 tf.sess.run()
- mysql - 我如何在sql中编写条件以获得所需的结果SQL
- python - 新行,在控制台中打印有问题
- charts - PHP电子表格图表设置轴范围
- javascript - Javascript多维数组更新一个值但全部更新
- mysql - AWS RDS automatically stopping soon after it is started
- c - 我可以同时对同一个 kobj 上的多个属性使用 sysfs_notify() 吗?
- javascript - 如何获取 $ (this) .children 内部元素属性的值?
- mysql - Zsh 说我的 shell 脚本中有一个无与伦比的 ' 。它在哪里?
- php - 如何在php中使html表格行相等