Java 手工实现String.length方法
我必须手动实现Java 手工实现String.length方法,java,string,Java,String,我必须手动实现Stringclass中的.length方法,我不知道,希望您能提供帮助。 除以下方法外,不允许使用其他方法或功能: String.charAt() String.substring() String.isEmpty() 位运算&、|、&&、| |、>>>、!=== 算术运算 for和while循环 递归 if-else语句 自行创建的方法(int、String、char、boolean等) 自行创建的阵列。(没有他们的方法) }在每次迭代中删除第一个字符时,可以循环,直到字符串为
String
class中的.length方法,我不知道,希望您能提供帮助。
除以下方法外,不允许使用其他方法或功能:
}在每次迭代中删除第一个字符时,可以循环,直到
字符串
为空
static int manual_length(String str) {
int len = 0;
while(!str.isEmpty()){
++len;
str = str.substring(1);
}
return len;
}
这也可以转换为尾部递归方法
static int manual_length(String str) {
return str.isEmpty() ? 0 : 1 + manual_length(str.substring(1));
}
另一种方法是通过递归,但我也问自己,我该怎么做
表示递归的极限。我如何表达:
.... lengthMethod1(String length, int ???) {
if(n == 0) {
return length.charAt(0);
}
else {
return ???? lengthMethod1(length, n - 1);
是的,您可以这样递归地执行:
static int manual_length(String str, int len) {
return str.isEmpty() ? len : manual_length(str.substring(1), len + 1);
}
使用累加器变量(即len)递增,同时从字符串中删除字符(即
str.substring(1)
)。当到达末尾(即str.isEmpty()
)时,返回累加器。在参数len中输入0,则答案正确。谢谢
static int manual_length(String str, int len) {
return str.isEmpty() ? len : manual_length(str.substring(1), len + 1);
}