是否可以使使用 Scanner 的用户可编辑现有字符串?如果是这样,如何?

Is it possible to make an existing string editable for the user using Scanner? If so, how?

提问人:RLFD43 提问时间:6/4/2023 更新时间:6/4/2023 访问量:51

问:

所以说我的程序有String A = "hello";

我希望它将“A”粘贴到用户的输入空间中,以便用户可以修改它(例如退格,添加更多文本),然后一旦用户完成,他们只需按回车键,他们的输入就会覆盖“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.util.scanner

评论

2赞 VGR 6/4/2023
恐怕不可能。输出和输入是完全分开的。程序输出无法“撤消”。你的目标是什么?也许还有另一种方法可以实现它。

答:

0赞 DAvinash97 6/4/2023 #1

我不确定你在问什么。如果这不是您想要的输出。让我知道!所以来到我的答案,如果你的意思是替换 A 的值,并且根据你的代码它返回但你想要(用户输入)。如果是这样,您可以定义另一个变量并获取用户输入。然后更改 A 的值。HelloThereThere

喜欢这个:

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); // Current Value of A
        String B = ir.nextLine(); // Taking User's input
        A = B; // Changing A's Value
        System.out.println(A); // New value
    }
}

输出:

Hello
There
There