gpt4 book ai didi

java - JAVA无法读取字符串结尾

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

我正在尝试制作一个用JAVA描述词法分析的程序。我能够定义 token 并设置所有内容,但在读取 while 循环中输入的整个字符串时遇到问题。我希望字符串通过 do while 中的每一步,但我无法实现它们。如果我尝试不做而做,但显然它不会给出准确的结果。如何在 while 中读取字符串直到末尾?

do {
if (string.contains("+")) {
lex_air[0]++;
} else if (string.contains("-")) {
lex_air[1]++;
} else if (string.contains("*")) {
lex_air[2]++;
} else if (string.contains("/")) {
lex_air[3]++;
}
if (string.contains(">")) {
lex_log[0]++;
} else if (string.contains("<")) {
lex_log[1]++;
} else if (string.contains("=")) {
lex_log[2]++;
} else if (string.contains(">=")) {
lex_log[3]++;
} else if (string.contains("<=")) {
lex_log[4]++;
}
if (string.contains("for")) {
lex_reserve[0]++;
} else if (string.contains("int")) {
lex_reserve[1]++;
} else if (string.contains("while")) {
lex_reserve[2]++;
} else if (string.contains("char")) {
lex_reserve[3]++;
} else {
lex_alpha++;
}
} while (string.endsWith(""));

最佳答案

试试这个:

String s = "";
String[] words = s.split("\\s+");
for (int i = 0; i < words.length; i++)
{
switch (words[i])
{
case "+" :
lex_air[0]++;
break;

case "-":
lex_air[1]++;
break;

case "*" :
lex_air[2]++;
break;

case "/":
lex_air[3]++;
break;

case ">":
lex_log[0]++;
break;

case "<":
lex_log[1]++;
break;

case "=":
lex_log[2]++;
break;

case ">=":
lex_log[3]++;
break;

case "<=":
lex_log[4]++;
break;

case "for":
lex_reserve[0]++;
break;

case "int":
lex_reserve[1]++;
break;

case "while":
lex_reserve[2]++;
break;

case "char":
lex_reserve[3]++;
break;

default:
lex_alpha++;
break;

}
}

关于java - JAVA无法读取字符串结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35994594/

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