【发布时间】:2017-01-19 04:34:09
【问题描述】:
我有一个非常大的程序需要检查输入的字符,这只是损坏部分的一部分。所以当我让它记录每个输入的字符时它就起作用了。但是当我尝试将每个字符添加到字符串中时,当他们输入单词 hi 时,它看起来像这样:
hi
不是
h
i
无论我尝试什么,它都会给我输入的第一个值并且不会将每个字符添加到字符串中.
String log = " ";
if(event.getVirtualKeyCode() == GlobalKeyEvent.VK_SPACE){
log = log + "";
}
if(event.getVirtualKeyCode() == GlobalKeyEvent.VK_BACK){
log = log + "[BACKSPACE]";
}
String timestamp = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss").format(Calendar.getInstance().getTime());
while(true){
try {
Thread.sleep(5000);
System.out.println("[" + timestamp + "]" + log);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
【问题讨论】:
-
你在哪里添加这些字符?
-
log = log + " ";和 log = log + "[BACKSPACE]";
-
假设, log = "M" 当你运行这行: log=log+"" => log="M"+"", 也就是 log = "M", 字符是怎么进来的记录?
-
log = log + ""是一种浪费。此外,您在每个字符之后打印(根据您的代码)。所以,如果这不是你想要的,不要println。 -
你需要两个线程。一个向构建器添加字符串,另一个在清除该构建器并打印日志之前等待 5 秒