gpt4 book ai didi

java - 字符串反转字的输出未按预期输出

转载 作者:行者123 更新时间:2023-12-01 16:55:08 25 4
gpt4 key购买 nike

Given a String with words.Reverse words of String.

示例输入 1

世界你好

示例输出

世界你好

我的方法

为了反转单词,我首先计算有多少个空格。之后,我将它们的空间索引存储在一个数组中。使用lastIndex,我打印了数组的最后一个元素。之后,我打印了数组的最后两个单词。

static String reverseWords(String inputString)
{
int l1=inputString.length();
int count=1;
for(int i=0;i<l1;i++)
{
char ch=inputString.charAt(i);
if(ch==' ')
{
count++;
}
}

int k=0;
int[] spaceindex=new int[count];
spaceindex[0]=0;
k++;
for(int i=0;i<l1;i++)
{
char ch=inputString.charAt(i);
if(ch==' ')
{
spaceindex[k++]=i+1;
}
}

int p=spaceindex.length-1;
String strnew="";
for(int j=spaceindex[p];j<l1;j++)
{
char c=inputString.charAt(j);
strnew=strnew+c;
}


p--;
while(p>=0)
{
for(int j=spaceindex[p];;j++)
{

char c=inputString.charAt(j);
if(c==' ')
{
break;
}
strnew=strnew+c;

}

}
return strnew;
}

InputParameters ActualOutput Expected Output

Hello World WorldHelloWorldHello(Infinite loop) WorldHello

@Edit我问为什么我写的代码是错误的。我尝试不使用任何内置函数(这对我来说是必要的)。这样我认为这不是重复的答案。

Can anyone guide me what went wrong in my code.

最佳答案

代码中的问题是 while 循环:

 while(p>=0) {
strnew = strnew + " ";
for(int j=spaceindex[p];;j++) {
char c=inputString.charAt(j);
if(c==' '){
break;
}
strnew=strnew+c;
}
p--;
}

添加p--将防止循环无限发生。另外,在 while 循环之后插入 strnew = strnew + ""; 可确保每个单词之间有一个空格。

关于java - 字符串反转字的输出未按预期输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34115505/

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