3 回答
0
return 语句由类似于 if-else 条件的三元条件组成。如果索引大于字符串的长度,它将返回“”,否则它将从输入索引返回子字符串
public class Test {
public static void main(String[] args) {
System.out.println("String that begins at 2 index : "+getTheString(2)); // Output waii
System.out.println("String that begins at 8 index : "+getTheString(8));// Output ""
}
public static String getTheString(int index) {
String str = "Hawaii";
return index > str.length() ? "" : str.substring(index);
}
}
于 2020-09-23T18:29:06.600 回答
0
更新到这个:
public class Test {
public static void main(String[] args) {
System.out.println(getTheString(2));
}
public static String getTheString(int f) {
String str = "Hawaii";
return (f > str.length() || f < 0) ? "" : str.substring(f);
}
}
输出 :
waii
于 2020-09-23T18:14:39.010 回答
0
您应该使用构造函数来设置str字段的值,而不是在getTheString方法内部对其进行硬编码,而且内部带有语句的循环也return有点奇怪。
您还应该检查输入参数是否有效(即,如果str不是null,那f不是负数并且小于str.length()
因此,代码可以改进如下:
public class LoopM {
public int a, b;
public String str;
public LoopM() {
this("Hawaii");
}
public LoopM(String str) {
this.str = str;
}
public String getTheString(int f) {
int length = null == str? -1 : str.length();
return f > -1 && f < length ? str.substring(f) : "";
}
public static void main(String args[]){
//used for testing
LoopM me = new LoopM();
System.out.printf("\"%s\"%n", me.getTheString(2)); // prints "waii"
System.out.printf("\"%s\"%n", me.getTheString(10)); // prints ""
}
}
于 2020-09-23T18:24:10.313 回答