我正在建立一个口译员,它正在逐行阅读。现在假设如果解释器仅找到字母a,则A是声明的变量,它将显示其值,但是如果找到“ a”,我只想显示a。
我不知道如何使口译员识别“ a”。然后消除“”,然后仅评估字母a。
for the_key, the_value in Journal.items(): # this will give you the keys and values
print(the_key, 'corresponds to', the_value) # this will print them out
答案 0 :(得分:0)
因此,据我所知,您希望能够采用一个字符串,通常像"A "
(不带引号)并删除空格。
找到字母。一种简单的方法是String.charAt(index)
。基本上,使用循环查找字母。创建一个char
“值”变量(值将是用于演示的变量名)
使用对应的ASCII值(您可以将其从char
强制转换为int
)来检查它是否为字母,并查看它是否为字母。如果是字母,请执行value = String.charAt(i) // i is from the for loop
System.out.print(characterValue)
答案 1 :(得分:0)
您可以首先识别所有用双引号引起来的字符串,并使其成为列表,然后将其与声明的变量匹配。
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);
}
}
}
}