【问题标题】:Java: How to recognize a specific stringJava:如何识别特定的字符串
【发布时间】:2013-11-17 03:52:25
【问题描述】:

我正在通过 Swing 进行简单的聊天,但遇到了一些问题。

我试图让我的客户在输入“/w anotheruserid”时向另一个用户发送私人消息。这不是关于 EventHandler,而是如何识别字符串。事件处理程序将如下所示。

public void keyTyped(KeyEvent e) {
if(textField.getText().equals("/w ")){

     }
}

我应该如何获得额外的字符串输入,例如另一个用户的 id?

【问题讨论】:

  • 用户id本身有什么限制吗?您可以尝试将输入分解为多个片段并验证每个片段是否符合您的预期。

标签: java string swing keyevent


【解决方案1】:

使用startsWith

if(textField.getText().startsWith("/w ")){
}

这样您可以简单地substring 文本并排除/w 部分以将其用作/w something

String message = textField.getText().substring(2);

【讨论】:

  • 没问题,很高兴我能帮上忙。
【解决方案2】:
if(textField.getText().equals("/w ")){

仅当 textField 中的文本为“/w”时,此条件才成立;

您可以改用if(textField.getText().startsWith("/w "))

然后您可以删除前 3 个字符,包括“/”、“w”和空格“”,以填充另一个用户 ID。

使用StringValue.substring(3);

一个例子如下:

String text = "/w anotheruserid";

    System.out.printf("Before populating anotheruserid==>%s\n", text);
    if (text.startsWith("/w ")) {
        text = text.substring(3);

        /*
         * Remove the first 3 characters, including '/' ,'w' and ' ')
         */

        System.out.printf("After  Populating anotheruserid==>%s\n", text);
    }

控制台输出:

Before populating anotheruserid==>/w anotheruserid
After  Populating anotheruserid==>anotheruserid

【讨论】:

    【解决方案3】:

    您可以为此使用正则表达式,也可以使用字符串子字符串函数来获取前两个字符,然后可以将其与“/w”匹配。

    【讨论】:

      猜你喜欢
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 2019-03-28
      • 2019-07-26
      • 1970-01-01
      相关资源
      最近更新 更多