【发布时间】:2021-03-17 09:49:23
【问题描述】:
我必须“手动”从String 类实现 .length 方法,我不知道,希望您能以某种方式提供帮助。
不允许使用其他方法或函数,除了:
- String.charAt()
- String.substring()
- String.isEmpty()
- 位运算 &,|, &&,||, >,>>>, !=, ==
- 算术运算
- for 和 while 循环
- 递归
- if else 语句
- 自行创建的方法(int、String、char、boolean 等)
- 自创数组。 (没有它们的方法)
static void manual_length2(String length) {
//example String length = "Hello" = 5 letters.
int counter = 0;
int i = 0;
char g = ' ';
while(i <= 4 ) { /*4 is the number i already know */
g = length.charAt(i);
counter += 1;
length.substring(1);
++i;
}
System.out.println(计数器);
控制台:5
这是我的方法,但我被困在 while 语句的终止条件中。 通过示例“Hello”,我已经知道这个词有 5 个字母,但它需要适合所有输入。所以我不知道如何表达 while 语句的边界值。
另一种方法是递归,但是,我问自己如何表达递归的限制。 我该如何表达:
.... lengthMethod1(String length, int ???) {
if(n == 0) {
return length.charAt(0);
}
else {
return ???? lengthMethod1(length, n - 1);
}
【问题讨论】: