Java 替换字符串并重新编码

Java 替换字符串并重新编码,java,Java,我对Java非常陌生&刚刚登录,但我想用星号隐藏密码。但是如果我使用这个片段,它将使用星星。更换后如何对其进行“编码” 编辑:输入来自GuitTextBox,这是Minecraft的GuiScreen方法 String input = passwd.getText(); char[] ca = new char[input.length()]; Arrays.fill(ca, '*'); String output = new String(ca); passwd.setText(output

我对Java非常陌生&刚刚登录,但我想用星号隐藏密码。但是如果我使用这个片段,它将使用星星。更换后如何对其进行“编码”

编辑:输入来自GuitTextBox,这是Minecraft的GuiScreen方法

String input = passwd.getText();
char[] ca = new char[input.length()];
Arrays.fill(ca, '*');
String output = new String(ca);

passwd.setText(output);

您正在尝试重新创建已存在的内容

Java提供了可以直接做您想要做的事情的工具

这很容易使用,就像JTextField一样,但在击键时隐藏密码。您有这个解决方案来获取值,但不记得getText是否也返回了值

char[] input = passwordField.getPassword();
有关更多信息,请参见此

编辑

因为这不是一个Swing组件,我也不知道,所以我会给你一个丑陋的解决方案


您需要将输入变量保存在内存中。因此,与其在替换值的方法中声明输入,不如在方法外部将其声明为实例变量

passwd是JTextField?看见如果你不把输入保存在某个地方,它就会丢失。。。。还是JPasswordField?请提供更多的上下文/背景和相关代码,这样我们就可以对此做出正面或反面的解释。passwd是一个GuitTextBox,它是Minecraft的GuiScreen方法。请编辑您的问题,询问它,就好像阅读它的人不知道您的代码的作用一样,你想做什么-我们看不懂思想,也看不到没有显示的代码。顺便问一下,GuiScreen是什么类的?我使用的是GuiTextBox,它是Minecraft的GuiScreen方法。@zByte由于你添加这些信息有点晚,我已经编辑了答案。