是否可以使用 Scanner 使用户可以编辑现有字符串?如果是的话,怎么办?

问题描述 投票:0回答:1

所以说我的程序有

String A = "hello";

我希望它将“A”粘贴到用户的输入空间中,以便用户可以修改它(例如退格键,添加更多文本),然后用户完成后,他们只需按 Enter 键,他们的输入就会覆盖“A”。

如果之前有人问过这个问题,我们深表歉意。

到目前为止,这是我尝试过的,但它只能添加文本,不能删除它们。

import java.util.Scanner;

public class Main
{
    public static void main(String[] args) throws Exception {
        Scanner ir = new Scanner (System.in);
        String A = "Hello";
        System.out.println(A);
        A = A+ ir.nextLine();
        System.out.println(A);
    }
}

这是输出。当我尝试使用退格键时,它不会删除“Hello”中的任何字符

Hello // output
 There  // input
Hello There // output
java string input java.util.scanner
1个回答
0
投票

要实现您的要求,您可以使用字符串生成器。在创建对象时启动它,并在 B 中获取用户输入。最后使用 String Builder 附加函数合并两个输出。

像这样:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        try(Scanner input = new Scanner (System.in)) {
            String A = "Hello";
            StringBuilder newStr = new StringBuilder(A);
            System.out.println(A); // Current Value of A
            String B = input.nextLine(); // Taking User's input
            newStr = newStr.append(B); // Changing A's Value
            System.out.println(newStr); // New value
        }
    }
}

输出:

Hello // A's default Value
 There // Input value with blank space
Hello There // Final Output with String Builder
© www.soinside.com 2019 - 2024. All rights reserved.