一个Java题:从键盘对接收的字符串中的字母进行大小写互转,输出后出现问题,求助!
不知道为何代码连续输出后字符串都是连着的导致越来越长!试了好久不知如何解决,求助大家帮忙!分不多,不好意思了!publicclassTextTransform{publi...
不知道为何代码连续输出后字符串都是连着的导致越来越长!
试了好久不知如何解决,求助大家帮忙!
分不多,不好意思了!
public class TextTransform
{
public static void main(String args[])throws Exception
{
Scanner scan = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
while(scan.hasNextLine())
{
String str = scan.nextLine();
if(str.equalsIgnoreCase("exit"))break;
for(int x = 0; x <str.length(); x++)
{
if(str.charAt(x)>='a' && str.charAt(x)<='z')
{
sb.append((char)(str.charAt(x)-32));
}
else if(str.charAt(x)>='A' && str.charAt(x)<='Z')
{
sb.append((char)(str.charAt(x)+32));
}
else
{
sb.append(str.charAt(x)); // ?? 不知为何这里不用强转或者加上(char) 一样都是字符
}
}
str = new String(sb);
System.out.println(str);
}
}
}
上面的注释无关紧要,一不小心就复制贴里了!
主要的问题还是输出后随着键盘录入的次数导致字符串都是连着了,没清空缓冲区?
求救大家帮助修改代码! 展开
试了好久不知如何解决,求助大家帮忙!
分不多,不好意思了!
public class TextTransform
{
public static void main(String args[])throws Exception
{
Scanner scan = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
while(scan.hasNextLine())
{
String str = scan.nextLine();
if(str.equalsIgnoreCase("exit"))break;
for(int x = 0; x <str.length(); x++)
{
if(str.charAt(x)>='a' && str.charAt(x)<='z')
{
sb.append((char)(str.charAt(x)-32));
}
else if(str.charAt(x)>='A' && str.charAt(x)<='Z')
{
sb.append((char)(str.charAt(x)+32));
}
else
{
sb.append(str.charAt(x)); // ?? 不知为何这里不用强转或者加上(char) 一样都是字符
}
}
str = new String(sb);
System.out.println(str);
}
}
}
上面的注释无关紧要,一不小心就复制贴里了!
主要的问题还是输出后随着键盘录入的次数导致字符串都是连着了,没清空缓冲区?
求救大家帮助修改代码! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询