gpt4 book ai didi

java - 交换字符串的第一个和最后一个字母

转载 作者:行者123 更新时间:2023-12-01 17:46:19 30 4
gpt4 key购买 nike

我正在制作一个程序,它将切换字符串的第一个和最后一个字母,但是当我运行它时,它只是将最后一个字母替换为第一个字母,就是这样。

public static String swap(String String3) {
//finds first & last letter of string
String firstLetter = String3.substring(0, 1);
String lastLetter = String3.substring(String3.length() - 1);
String a = String3.replace(firstLetter, lastLetter);
String z = a.replace(lastLetter, firstLetter );
return z;
public static void main(String[] args){
System.out.print("Enter your swap string: ");
Scanner scan = new Scanner(System.in);
String String3 = scan.nextLine();
System.out.println(swap(String3));
}

谁能告诉我我做错了什么?

最佳答案

String.replace 将所有出现的第一个字符替换为第二个字符。那不是你想要的。作为示例,我们假设文本 abc。第一个替换将导致 cbc,第二个替换将导致 aba,这就是您所看到的。输入字符串 abab 将生成 aaaa 作为结果。

您需要创建一个新的String来获取您想要的交换:

char first = text.charAt(0);
char last = text.charAt(text.length() - 1);
return last + text.substring(1, text.length() - 2) + last;

或者您可以使用正则表达式:

text.replaceAll("^(.)(.*)(.)$", "$3$2$1");

如果输入文本的长度足够长,我跳过了测试,因此输入文本 a 将导致第一个解决方案出现错误。第二个解决方案仍然有效,因为正则表达式不匹配并且不会进行替换。

关于java - 交换字符串的第一个和最后一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54796070/

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