android正则表达式找不到匹配器

奥里0n

我在 android 中使用正则表达式来读取用户输入,它是这样的:1:10&3:20 d20 3:10

(只是想知道,我将此输入发送到 arduino)

我需要验证用户是否断线,如果是,我将线路发送到 arduino。如果该行以 'd' 开头(如第二个),它将设置一个延迟,时间将是该行中的下一个整数;

这是我的代码,但问题是当我尝试验证匹配器是否找到我在编译中设置的内容时

final String expression = aux.getCodigo().toString();
                    //System.out.println("mandeii " + MenuActivity.mIn.read());

                    Pattern pattern = Pattern.compile("'(\n)'");
                    Matcher matcher = pattern.matcher(expression);
                    System.out.println("achei ");
                    if (matcher.find()){
                        System.out.println("found the first endLine"+ matcher);
                        if (matcher.group(0).charAt(0) == 'd') {
                            System.out.println("achei o d "+matcher.group(0).charAt(0));
                            int v1 = matcher.group(0).charAt(1);
                            if (matcher.group(0).charAt(2) != '\n') {
                                int v2 = matcher.group(0).charAt(2);
                                int valor = Integer.parseInt(String.valueOf(v1) + String.valueOf(v2));
                                System.out.println("valor "+valor);
                                new CountDownTimer(valor * 1000, 1000) {
                                    public void onFinish() {
                                        System.out.println("delayed");
                                    }

                                    public void onTick(long millisUntilFinished) {
                                        // millisUntilFinished    The amount of time until finished.
                                    }
                                }.start();

                            } else {
                                new CountDownTimer(v1 * 1000, 1000) {
                                    public void onFinish() {
                                        System.out.println("delayed");
                                    }

                                    public void onTick(long millisUntilFinished) {
                                        // millisUntilFinished    The amount of time until finished.
                                    }
                                }.start();

                            }

                        }
                        else MenuActivity.mOut.write(matcher.group(0).getBytes());

如果有人知道,它会对我有很大帮助,tks

氰化物

因此,您只需要使用 \n 作为块分隔符将行拆分为块(片)。正确的?那么为什么要让它如此复杂,因为有一个很好的split方法:

  // This must run in a NON-UI thread!
   //===================================== 
   try {
     for (String chunk: expression.split("\n")) {
        if (chunk.charAt(0) == 'd') {
            int valor; 
            if (chunk.length() > 1 &&
                (valor = Integer.parseInt(chunk.substring(1)))> 0) {
                    System.out.println("Delay " + valor + " millisec");
                    Thread.sleep(valor);
             }
        } else 
            MenuActivity.mOut.write(chunk.getBytes());

      } // End of for loop
    } catch(InterruptedException ex) {
         System.out.println("Cancelled");
    }

   }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java匹配器找不到匹配项,即使正则表达式可以单独工作

来自分类Dev

正则表达式匹配,如果找不到空间

来自分类Dev

找不到与Java Matcher匹配的正则表达式

来自分类Dev

Java正则表达式找不到匹配项

来自分类Dev

正则表达式代码找不到匹配项

来自分类Dev

是正则表达式匹配器

来自分类Dev

正则表达式匹配器

来自分类Dev

Java正则表达式匹配器-多个组

来自分类Dev

Java正则表达式边界匹配器

来自分类Dev

\W 匹配器 vs 空格?正则表达式

来自分类Dev

正则表达式:找不到正确的表达

来自分类Dev

仅当找不到重复行时才匹配的正则表达式

来自分类Dev

替换正则表达式,直到找不到匹配项

来自分类Dev

正则表达式找不到两个匹配项

来自分类Dev

如果找不到子字符串,则正则表达式匹配

来自分类Dev

在简单的正则表达式中找不到匹配项

来自分类Dev

如果在函数中定义了正则表达式,则找不到匹配项

来自分类Dev

Java正则表达式,IllegalStateException:找不到匹配项

来自分类Dev

替换正则表达式,直到找不到匹配项

来自分类Dev

为什么我的正则表达式找不到任何匹配项?

来自分类Dev

找不到正确的正则表达式模式

来自分类Dev

找不到合适的正则表达式

来自分类Dev

Python正则表达式找不到某些模式

来自分类Dev

找不到这个简单的正则表达式

来自分类Dev

在我的正则表达式中找不到错误

来自分类Dev

找不到合适的正则表达式

来自分类Dev

我找不到正则表达式

来自分类Dev

找不到 Vim 正则表达式替换模式

来自分类Dev

正则表达式在Ruby 1.8.7中找不到匹配项,但在1.9.2中却找到了匹配项

Related 相关文章

热门标签

归档