【发布时间】:2013-08-25 13:28:27
【问题描述】:
问题:给定一个字符串作为输入,将所有大写字母移动到字符串的末尾。示例:
move("Hello World")="ello orldHW"
问题是:我的代码不会停在ello orldHW,而是会继续
ello orldHW // Expected output
ello orldWH // What I am actually getting
代码:
public class MoveUppercaseChars {
static String testcase1 = "Hello World";
public static void main(String args[]){
MoveUppercaseChars testInstance = new MoveUppercaseChars();
String result = testInstance.move(testcase1);
System.out.println("Result : "+result);
}
public String move(String str){
int len = str.length();
char ch;
for(int i=0; i<len; i++) {
ch = str.charAt(i);
if(((int)ch >= 65) && ((int)ch <= 90)) {
str = str.substring(0, i) + str.substring(i+1, len) + str.charAt(i);
}
}
return str;
}
}
【问题讨论】:
-
我不明白您的预期输出和实际输出之间的区别。是不是要打印两次?
-
WH 被反转了,而且似乎打印了两次。
-
忘记这个语句 System.out.println(str);并以“我的名字是詹姆斯邦德”作为输入。预期输出:y name is ames ondMJB 实际输出:y name is ames ondJMB 希望你现在明白我的问题。
标签: java