返回从 String 的输入参数索引开始的字符串
Returning a string that begins at the input parameter index of the String
方法名称是getTheString()
Return类型是String
输入参数为int
我必须 return 一个字符串,该字符串从作为实例变量的字符串 str 的输入参数索引位置开始。 Return如果输入参数索引位置大于或等于字符串长度,则为空字符串。
一个例子是
如果str = “Hawaii”
getTheString(8) returns “ “
getTheString(2) returns
“哇”
我不知道为什么当我执行它时没有任何反应,或者如何修复它,有人可以帮忙。
public class LoopM
{
public int a, b;
public String str;
public LoopM(){
}
public String getTheString(int f){
str = "Hawaii";
int length = str.length();
for(f = length; f < 10; f++){
return str.substring(f);
}
return str.substring(f);
}
public static void main(String args[]){
//used for testing
LoopM me = new LoopM();
me.getTheString(2);
}
}
对此更新:
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
您应该使用构造函数来设置 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 ""
}
}
return 语句由类似于 if-else 条件的三元条件组成。如果索引大于字符串的长度,它将 return " " 否则它将 return 来自输入索引的子字符串
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);
}
}
方法名称是getTheString()
Return类型是String
输入参数为int
我必须 return 一个字符串,该字符串从作为实例变量的字符串 str 的输入参数索引位置开始。 Return如果输入参数索引位置大于或等于字符串长度,则为空字符串。
一个例子是
如果str = “Hawaii”
getTheString(8) returns “ “
getTheString(2) returns “哇”
我不知道为什么当我执行它时没有任何反应,或者如何修复它,有人可以帮忙。
public class LoopM
{
public int a, b;
public String str;
public LoopM(){
}
public String getTheString(int f){
str = "Hawaii";
int length = str.length();
for(f = length; f < 10; f++){
return str.substring(f);
}
return str.substring(f);
}
public static void main(String args[]){
//used for testing
LoopM me = new LoopM();
me.getTheString(2);
}
}
对此更新:
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
您应该使用构造函数来设置 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 ""
}
}
return 语句由类似于 if-else 条件的三元条件组成。如果索引大于字符串的长度,它将 return " " 否则它将 return 来自输入索引的子字符串
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);
}
}