gpt4 book ai didi

java - StringBuffer 没有输出我期望的内容

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

我正在尝试在字符串中切换 $ 及其右侧的字符。我不允许使用 char[],所以我决定使用 StringBuffer。但是,当我尝试使用 H$E 之类的内容运行代码时,它会输出 HE$H$E 我不知道额外的字符来自哪里,而且我我正在寻求解释。

package schrumpf.clayton.csc110.drills1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MoneyToTheRight {

static BufferedReader in;


public static void main(String[] args) throws IOException{
in = new BufferedReader(new InputStreamReader(System.in));

String input = in.readLine();
int dollarIndex = input.indexOf("$");
StringBuffer buffer = new StringBuffer(input);
char afterDollarChar = buffer.append(input).charAt((dollarIndex + 1));
buffer.setCharAt(dollarIndex, afterDollarChar);
buffer.setCharAt((dollarIndex + 1),'$');
String result = buffer.toString();
System.out.println(result);
}

}

最佳答案

您将输入添加两次。

StringBuffer buffer =  new StringBuffer(input);
buffer.append(input)

我建议添加一次。我还建议使用 StringBuilder,它在十多年前取代了 StringBuffer。

Scanner in = new Scanner(System.in);

StringBuilder buffer = new StringBuilder(in.nextLine());
int dollarIndex = buffer.indexOf("$");
buffer.setCharAt(dollarIndex, buffer.charAt(dollarIndex + 1));
buffer.setCharAt(dollarIndex + 1, '$');
System.out.println(buffer);

或者作为一句台词

System.out.println(in.nextLine().replaceFirst("\\$(.)", "$1\\$"));

关于java - StringBuffer 没有输出我期望的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861204/

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