gpt4 book ai didi

java - while循环不显示字符串

转载 作者:行者123 更新时间:2023-12-01 23:17:35 25 4
gpt4 key购买 nike

我有一个函数,可以在这个函数中逐个字符地打印字符数组,流参数只是让我们习惯从java到C的转换

public static int writeline (String message, PrintStream stream) {        
// YOUR CODE GOES HERE
char[] array = new char[message.length()];

for(int i = 0; i < message.length(); i++){
array[i] = new Character(message.charAt(i));
}

int index = 0;
while( array[index] < message.length()){
fputc(array[index],stream);
index++;
}
return 0;
}

public static void main( String[] args ) {

System.err.print("Hola Mundo\n");
writeline ("Hello World", System.out);
}

只有当我给出像 array[index] != null 这样的条件时,while 循环才起作用,但它会打印带有越界异常错误的字符串。 否则,不会打印任何内容。 main 方法只是调用此方法并传入字符串和流参数。

编辑为了清晰起见添加了主要方法

最佳答案

当前,当字符串中每个字符的数值小于字符串的长度时,您正在循环。这是 ASCII chart 。这给出了字符的数值。

您的字符串可能不超过“a”或“A”的数值,对吧?因此循环的条件为 false,并且不会打印任何内容。

当你循环 while array[index]!=null 时,你会得到一个 ArrayIndexOutOfBoundsException 因为循环一直为真,直到数组末尾(因为数组中没有元素)您的数组为空。)最终您引用了一个不存在的索引。

您想要做的是在索引值小于字符数组的长度时循环。

while(index < array.length){
//code code code ;)
}

如果允许您在此处使用 for 循环,我会使用它而不是 while,因为它稍微干净一些。

for(int index=0;index<array.length;index++){
//same code.
}

关于java - while循环不显示字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com