如何为char分配两个字符?

时间:2015-05-05 07:08:11

标签: java text char

我正在创建一个单一的软件。不要认为这个词是" Singlish" : - 。)

这是我的代码,

private void txt_titleKeyTyped(java.awt.event.KeyEvent evt) { 

char c = evt.getKeyChar();
         switch (c) {
            case 'a':
                txt_body.setText(txt_body.getText() + "අ");
                break;
            case 's':
                txt_body.setText(txt_body.getText() + "ස");
                break;
            }
 }

在这个应用程序中,当我输入字母" a"程序打印一个特定的字符。我有两个问题,

  1. 如果我按下#34; a"程序打印正确的字符("අ")并打印" a"
    (像这样"අa")。 只有我需要"අ"。如何防止打印" a"。

  2. 如果我输入" aa" ,我需要打印另一个角色。所以我试过了

       case 'aa':
          txt_body.setText(txt_body.getText() + "ආ");
          break;
    

    但是有一个错误"未公开的字符文字" 有没有办法为javaScript中的字符分配两个字符。

2 个答案:

答案 0 :(得分:0)

对于第一个问题,我认为你应该删除最后打印的字符,以便去除不需要的字符,即

...
char c = evt.getKeyChar();
int index = txt_body.getText().lastIndexOf(c);
if(index >= 0) {
   txt_body.setText(txt_body.getText().substring(0, index));
}
     switch (c) {
...

至于第二个问题,答案是:你做不到。 Javascript所做的是静默地将您的char转换为字符串,这也是您应该在Java中执行的操作。

答案 1 :(得分:0)

字符是单个字母,包含字符串联的数据结构是字符串。在Java中,你可以对字符串执行switch语句,如here所示,但是,如上所述,你有两个问题:

  1. txt_titleKeyTyped事件将在每次按键时触发,这意味着键入aa将同时触发同一事件两次。
  2. 您打算如何让您的计划区分aa和后续两个a字符?
  3. 你可以有一个计时器,在没有按键的情况下触发一段时间,比如说500毫秒并尝试解析字符串。然后,您可以在末尾添加evt.consume();,以确保键入的字符不会在文本框中结束。