当前位置: 代码迷 >> Java相关 >> !应用String.length()编程时,输入中英文字符串运行结果不同
  详细解决方案

!应用String.length()编程时,输入中英文字符串运行结果不同

热度:501   发布时间:2016-04-22 19:57:08.0
求助!应用String.length()编程时,输入中英文字符串运行结果不同。
本帖最后由 qq_29720863 于 2015-07-10 22:41:11 编辑
    求助各位高手,我自学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("?") 

中文的?和英文的?不是同一个编码
你输入的时候注意最后一次输入切换输入法写作英文的就可以了
或则你再添加几个带中文?的判断语句
  相关解决方案