首页 > 解决方案 > 划分和比较两个字符串

问题描述

我正在构建一个解释器,它正在逐行阅读。现在让我们假设 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() + " ");
}

标签: javastringsplit

解决方案


您可以首先识别双引号中的所有字符串并将其设为列表,然后将其与您声明的变量匹配。

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);
            }
        }
    }
}


推荐阅读