我有这个问题:我应该阅读一个文本文件,如果它们是小写的,那么我必须将它们转换为大写。
以下是代码:
for (int i = 0; i < count; i++) {
//outputArray[i] = inputToArray[i];
for (int j = 0; j < charListLength; j++) {
if (inputToArray[i] == charList[j]) {
if (Character.isLowerCase(inputToArray[i])) {
inputToArray[i] = Character.toUpperCase(inputToArray[i]);
}
if (Character.isUpperCase(inputToArray[i])) {
inputToArray[i] = Character.toLowerCase(inputToArray[i]);
}
}
}
}
输入文件包含:
a,e,i,o,u小写这是一个故事 A,E,I,O,U UPPERCASE
但输出产生:
a,e,i,o,u小写这是一个故事 a,e,i,o,u uPPeRCaSe
-
请注意&#34; a,e,i,o,u小写这是一个故事&#34;和&#34; A,E,I,O,U UPPERCASE&#34;是输入文件中的单独行,输出文件也包含它们。
我哪里出错了?
感谢您的大力帮助,请帮忙。
解决:
for (int i = 0; i < count; i++) {
//outputArray[i] = inputToArray[i];
for (int j = 0; j < charListLength; j++) {
if (inputToArray[i] == charList[j]) {
if (Character.isLowerCase(inputToArray[i])) {
inputToArray[i] = Character.toUpperCase(inputToArray[i]);
} else if (Character.isUpperCase(inputToArray[i])) {
inputToArray[i] = Character.toLowerCase(inputToArray[i]);
}
break;
}
}
}
需要休息!
答案 0 :(得分:1)
您必须将第二个if
- 条款替换为else if
。
考虑一下:
输入为a
。您的第一个if
解散为true
并使a
成为大写 - &gt; A
。
但是,您的第二个if
也会解散为true
,因为A
现在是大写的,因此它会再次转换为小写 - &gt; a
。
使用else if
的固定版本
:
for (int i = 0; i < count; i++) {
//outputArray[i] = inputToArray[i];
for (int j = 0; j < charListLength; j++) {
if (inputToArray[i] == charList[j]) {
if (Character.isLowerCase(inputToArray[i])) {
inputToArray[i] = Character.toUpperCase(inputToArray[i]);
}
else if (Character.isUpperCase(inputToArray[i])) {
inputToArray[i] = Character.toLowerCase(inputToArray[i]);
}
}
}
}