0

我一直在努力解决一个作业中的这个简单问题:

我的测试器类应该读取一个名为 name 的输入,而我的另一个类应该有一个只返回大写字母的方法。

我的代码将大写字母与原始输入一起返回。

任何帮助都会大有帮助。

public static String pleaseGetUpperCase(String name){
    for (int i=0;i<name.length();i++){
        if (Character.isUpperCase(name.charAt(i))==true){
            System.out.print(name.charAt(i));
            //String name = Character.toString(name.charAt(i)); 
        }
    }   return name;
}   
4

3 回答 3

2

也许你应该尝试这样的事情:

public String getUpperCase(final String string){
    final StringBuilder builder = new StringBuilder();
    for(final char c : string.toCharArray())
        if(Character.isUpperCase(c))
            builder.append(c);
    return builder.toString();
}
于 2013-10-05T23:45:44.653 回答
1

您提供的方法不只返回大写字符,它只是打印它们并返回原始字符。这可以完成这项工作:

public static String pleaseGetUpperCase(String name){
    String uppercaseCharacters = "";
    for (int i=0;i<name.length();i++){
        char ch = name.charAt(i);
        if (Character.isUpperCase(ch)){
            uppercaseCharacters += ch;
        }
    }   
    return uppercaseCharacters;
}

旁注:在 if 条件中与 true 进行比较并不是很有用。

于 2013-10-05T23:52:32.247 回答
0

试试这个..没有声明return name

public static String pleaseGetUpperCase(String name){

    for (int i=0;i<name.length();i++){

        if (Character.isUpperCase(name.charAt(i))){


            System.out.print(name.charAt(i));    
        }
    } 
    return "";
}   

此函数将在您的字符串中打印大写字母。如果您想要它,returned那么您可以创建一个对象StringBuilder并将大写字符附加到它,然后将数据StringBuilder对象作为String.

public static String pleaseGetUpperCase(String name){

    StringBuilder SB = new StringBuilder();



    for (int i=0;i<name.length();i++){

        if (Character.isUpperCase(name.charAt(i))){

         SB.append(name.charAt(i);

        }
    } 
    return (SB.toString());

}   
于 2013-10-05T23:48:03.040 回答