从Java中键入的键生成字符串
我必须给它取个外号,我用KeyListener做任何事。我想用键盘输入来写昵称,但我不知道如何保存每个字母。例如:从Java中键入的键生成字符串,java,tostring,keyevent,Java,Tostring,Keyevent,我必须给它取个外号,我用KeyListener做任何事。我想用键盘输入来写昵称,但我不知道如何保存每个字母。例如: keyTyped(KeyEvent e){ char key = e.getKeyChar(); nick = new String[10]; for(int i = 0; i<10; i++){ nick[i] = Character.toString(key);
keyTyped(KeyEvent e){
char key = e.getKeyChar();
nick = new String[10];
for(int i = 0; i<10; i++){
nick[i] = Character.toString(key);
key = e.getKeyChar();
}
}
keyTyped(KeyEvent e){
char key=e.getKeyChar();
尼克=新字符串[10];
for(int i=0;i每次键入一个键时,for循环都会运行,使数组中的每个字母都成为最后一个键入的字母,如您所说。在keyTyped事件外部定义一个计数器变量,将其用作数组位置,然后在每次键入键时将其递增。还可以在keyTyped事件外部定义昵称
int count = 0;
nick = new String[10];
keyTyped(KeyEvent e){
if(count<nick.length) { //make sure if more than 10 characters are pressed it wont cause an error
char key = e.getKeyChar();
nick[count] = Character.toString(key);
count += 1;
}
}
int count=0;
尼克=新字符串[10];
keyTyped(KeyEvent e){
if(count这里,每次从键盘中提取字符时,都会执行“for”循环。每次变量i被设置为0,最后一个字符被放入字符串数组中
在从键盘获取字符之前初始化循环变量
我希望这解决了您的问题。这是因为e.getKeyChar()
只提取已按下的字符,而不是每次都获取一个新字符。因此数组始终只是字符的10次。您的昵称需要是数组吗?因为如果不需要,您可以这样做(也就是说,如果去掉if语句,那么昵称可以任意长):
int count=0;
字符串nick=“”;
keyTyped(KeyEvent e){
char key=e.getKeyChar;
//如果您的昵称只需要10个字符长,那么
//阻止输入太多字符
如果(计数<10){
尼克+=钥匙
}
}
+=
是否与字符串一起工作?如果不使用nick.concat(键)
int count = 0;
String nick = "";
keyTyped (KeyEvent e){
char key = e.getKeyChar;
//If your nickname needs to be only 10 characters long, then this
//Stops too many characters from entering
if (count < 10){
nick += key
}
}