求助各位高手,我自学java做章节后面的练习题时编写了一段代码,当输入英文字符串时运行正常,当输入的字符串是中文的时候就运行出错,实在是想不出原因了。一下是代码(题目要求是使用循环,当输入字符串以‘?’或‘!’结尾时结合字符串长度有相应的输出):
import java.util.*;
public class one
{
public static void main(String[] args)
{
String answer;
String control="yes";
do
{
System.out.println("请输入一串以标点符号结尾的字符串");
Scanner take = new Scanner(System.in);
String str = take.nextLine();
if (str.endsWith("?") && str.length()%2==0)
{
System.out.println("yes!");
}
else if (str.endsWith("?") && str.length()%2!=0)
{
System.out.println("no!");
}
else if (str.endsWith("!") )
{
System.out.println("wow!");
}
else
{
System.out.println("you always say:"+str);
}
System.out.println("你想继续吗?继续输入:yes;结束输入:no");
answer = take.next();
}while(answer.equals(control));
}
}
------解决思路----------------------
可能中文乱码吧?
------解决思路----------------------
很简单
str.endsWith("?")
中文的?和英文的?不是同一个编码
你输入的时候注意最后一次输入切换输入法写作英文的就可以了
或则你再添加几个带中文?的判断语句