0

我正在经历以前的考试问题,我的问题是确定字符串长度并返回它的正确方法是什么。

如果字符串的长度小于 5 个字符,那么我可以通过以下方式返回它:

public static String first5(String s){
     if(s.length() < 5)
     return s;
}

但是,如果 String 大于 5 个字符,则可以通过以下方式返回:

public static String first5(String s){

     return s.substring(0, 4);
}

我必须注意的是,当我之前在课堂测试中回答这类问题时,我的讲师强调我真的不应该使用“幻数”?不过,我不确定他实际上是什么意思。

有没有更好的方法来返回这种类型的方法?

我还在学习 Java,所以请原谅我的语法中的任何错误。

非常感谢。

4

4 回答 4

3

这应该是你的方法first5

public static String first5(String s){
  return s.length() < 5? s : s.substring(0, 5);
}

这里没有幻数,但也许老师的意思是数字 5 是一个幻数,并希望您概括该函数:

public static String firstN(String s, int n){
  return s.length() < n? s : s.substring(0, n);
}
于 2013-03-19T20:33:13.193 回答
1

本质上,如果需求发生变化,您可以轻松地在一个位置更改值;因此,它会在它被引用的任何地方被改变。您不必担心代码中漂浮的旧需求的任何片段。这通常是处理大量代码的好规则。

public class solution {
    static final int VAR1 = 0;
    static final int VAR2 = 4;
    static final int VAR3 = 5;
    public static String first5(String s){
        if(s.length() < VAR3) { 
            return s;
        } else {
            return s.substring(VAR1, VAR2);
        }
    }
}

当然,变量名称必须命名为对类/应用程序本身有意义的名称。

于 2013-03-19T20:34:11.633 回答
1

请注意,使用 if 语句并没有什么可耻的:

String r = null;
if (s.length() < 5) {
    r = s;
}
else {
    r = s.substring(0,5);
}
return r;

逻辑比使用?:. 后者的优势在于它占用的屏幕空间较小,因此您可以在屏幕上获得更多的大型功能——如果您拥有大型功能,则很有价值,但如果没有,则会适得其反。

于 2013-03-19T20:39:25.893 回答
0

数字 5 在您的问题中吗?如果没有使用字符串输入获取数字作为输入参数。

于 2013-03-19T20:34:45.213 回答