gpt4 book ai didi

java - 只循环打印第一个字

转载 作者:行者123 更新时间:2023-11-29 07:33:38 24 4
gpt4 key购买 nike

我正在编写软件测试类(class)的程序。我需要创建一个遍历字符串的循环,以便找到特定的单词,然后将其与预期结果进行比较。我遇到的问题是我的循环只打印出字符串的第一个单词。我一辈子都弄不明白我做错了什么。请帮忙。

这是我的代码:

String input = "Now is the time for all great men to come to the aid of their country";
String tempString = "";
char c = '\0';
int n = input.length();
for(int i = 0; i<n; i++)
{
if(c != ' ')
{
c = input.charAt(i);
tempString = tempString + c;
}
else
{
System.out.println(tempString);
tempString = "";
}
}

最佳答案

它只打印出第一个单词的原因是,一旦找到空格,您就永远不会重置 c 的值,因此 if 将始终为 false 并将打印出您已设置为空字符串的 tempString .

修复您编写的代码:

public static void main(String[] args) {
String input = "Now is the time for all great men to come to the aid of their country";
String tempString = "";
char c = '\0';
int n = input.length();
for(int i = 0; i<n; i++)
{
c = input.charAt(i); // this needs to be outside the if statement
if(c != ' ')
{
tempString = tempString + c;
}
else
{
System.out.println(tempString);
tempString = "";
}
}
}

但是......简单地使用内置的字符串方法来做你想做的事情要干净得多(例如,在空格上拆分)。您也可以简单地使用 for each 循环,因为 split 方法返回一个字符串数组:

public static void main(String[] args) {
String input = "Now is the time for all great men to come to the aid of their country";
for (String word : input.split(" ")) {
System.out.println(word);
}
}

关于java - 只循环打印第一个字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38819639/

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