您好我正在尝试从低级转换为大写。我知道他们是其他更简单的方法,但我想要别的东西。似乎该程序不止一次打印出用户输入,所以我几乎100%肯定它是循环。但我无法找到问题所在。
String a = input.nextLine();
String c = "";
int b = a.length();
for (int i = 0 ; i < b; i++)
{
if (a.charAt(i) >= 97 && a.charAt(i) <= 122)
{
c = c + a;
System.out.println(c.toUpperCase());
}
}
答案 0 :(得分:1)
实际上您的代码逻辑并不完全正确,我的意思是您为什么要将a
的内容添加到c
?没有意义,你在if
中排除了 a 和 z 中的字母。
String a = input.nextLine();
String c = "";
int b = a.length();
for (int i = 0; i < b; i++) {
if (a.charAt(i) >= 97 && a.charAt(i) <= 122) {
c = c + a.charAt(i);
}
}
System.out.println(c.toUpperCase());
答案 1 :(得分:0)
您在输入c
的循环的每次迭代中打印if
,而不是在结束后打印一次。
答案 2 :(得分:0)
此解决方案应该有效:
for (int i = 0 ; i < b; i++)
{
if (a.charAt(i) > 97 && a.charAt(i) < 122)
{
a = a.toUpperCase();
}
}
System.out.println(a);
答案 3 :(得分:0)
为什么要打扰完全循环呢?
String a = input.nextLine();
System.out.println( a.toUpperCase();
会做你想做的事
如果要反转字符:
StringBuffer sb = new StringBuffer(a);
for ( int i=0; i < sb.length(); i++ ) {
char c = sb.charAt(i);
if ( c.isLower() ) {
sb.setCharAt(i,c.toUpper());
} else if ( c.isUpper() ) {
sb.setCharAt(i,c.toLower());
}
}
String result = sb.toString();