gpt4 book ai didi

java - 返回字符串结果不正确

转载 作者:行者123 更新时间:2023-12-01 21:47:13 25 4
gpt4 key购买 nike

这是我的代码,我希望用户输入一个单词或一个短语,然后用户可以删除所有字符、删除单个字符、用另一个字符替换一个字符以及反转字符。

每个单独的函数都单独工作,但是当我将其放入 while 循环中时,我打印出的字符串与用户的输入相同。

基本上字符串中的函数不起作用。我不知道我的代码有什么问题。

循环有点搞乱了我,如果有人可以测试代码,那就太棒了!

import java.util.Scanner;

public class StringFun {

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int counter;
String str, str1;
boolean play=true;

System.out.println("Enter the string to be manipulated:");
str=scan.nextLine();
while(play==true){

System.out.println("Enter your command (quit, print reverse, replace all, replace single, remove");
str1= scan.nextLine();

if(str1.equalsIgnoreCase("print reverse"))
{

String reverse = "";
Scanner in = new Scanner(System.in);

System.out.println("Enter a string to reverse");
String s=scan.nextLine().trim();

int length = s.length();

for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + s.charAt(i);
}

else if(str1.equalsIgnoreCase("replace all"))
{
System.out.println("Enter the character to replace");
String s=scan.nextLine().trim();
s=str.substring(0,1);

System.out.println("Enter the new character");
String r=scan.nextLine().trim();
r=str.substring(0,1);

str=str.replace(s, r);

}
else if(str1.equalsIgnoreCase("replace single"))
{
System.out.println("Enter the character to replace");
String s=scan.nextLine().trim();
s=str.substring(0,1);

System.out.println("Enter the new character");
String r=scan.nextLine().trim();
r=str.substring(0,1);

System.out.print("Which "+ s+ " do you want to replace?");
int index=scan.nextInt();

for (int i =0; i<str.length();i++){
if(str.substring(i,i+1).equalsIgnoreCase(s))
index--;
if(index==0)
str=str.substring(0,i)+r+str.substring(i+1,str.length());
}

}
else if(str1.equalsIgnoreCase("remove"))
{
System.out.println("Enter the character to remove");
String s=scan.nextLine().trim();
s=str.substring(0,1);

str.replace(s,"");
}

else if(str.equalsIgnoreCase("quit"))
System.exit(0);
else
System.out.println("Please enter a valid command");

System.out.println(str);

}
}
}

最佳答案

当然,当您执行 println(str) 时,它会打印输入,并且永远不会更改 str 的值。

示例:对于“printverse”,您在名为reverse的变量中构建一个新的反向字符串,但随后不对其执行任何操作。也许 str = reverse 就是您想要的。

关于java - 返回字符串结果不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35854116/

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