【问题标题】:check string with delimiter expected检查带有分隔符的字符串
【发布时间】:2014-07-08 16:40:03
【问题描述】:

我想分割从蓝牙获得的字符串。我正在使用

StringTokenizer  splitStr = new StringTokenizer(readMessage, "\\|");
String numberSpeed = splitStr.nextToken();  //splitStr[0].replaceAll("\\D+","");
String numberTorque = splitStr.nextToken();  //splitStr[1].replaceAll("\\D+","");
numberSpeed = numberSpeed.replaceAll("\\D+","");
numberTorque = numberTorque.replaceAll("\\D+","");

以前用拆分字符串做过。 如果我在没有分隔符的情况下获得损坏的数据,则应用程序在尝试做不可能的事情时崩溃。

  • 如何判断是否有分隔符,然后进行拆分或跳过?

【问题讨论】:

    标签: android split delimiter stringtokenizer


    【解决方案1】:

    这是来自标记器文档的引用:StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code.

    尝试改用String.split() 用户。

    if(str.contains(DEILIMITER)) {
         String tab[] = str.split(DEILIMITER);
        //enter code here
    
    }
    

    【讨论】:

      【解决方案2】:

      你可以通过 contains() 方法检查字符串中的分隔符

      if(str.contains("_your_delimiter")) {   //for safe side convert your delimeter and search string to lower case using method toLowerCase()
           //do your work here
      }
      

      【讨论】:

      • if(readMessage.contains("|")){ StringTokenizer splitStr = new StringTokenizer(readMessage, "\\|"); numberSpeed = splitStr.nextToken().replaceAll("\\D+",""); numberTorque = splitStr.nextToken().replaceAll("\\D+",""); } 仍然尝试拆分它并崩溃
      • 你能发一下logcat吗?我的意思是说它抛出了哪个异常。
      • 它确实有效......不知道我改变了什么,但它有效:D
      • 如何检查字符串是否包含数字? if(str.contains("_your_delimiter && D+")) {???抱歉,我不知道所有这些 \\DD 等命令...
      • 看这里..这可能会帮助你做你想做的事。查看接受的答案...stackoverflow.com/questions/18590901/…
      【解决方案3】:

      试试这个,我在我的应用程序中使用它。

      String container = numberSpeed ;
      String content = "\\D+";
      boolean containerContainsContent = StringUtils.containsIgnoreCase(container, content);
      

      如果有分隔符,它将return true,而false没有。

      将其与if statement 一起使用。 例如

      if(containerContainsContent){
      //split it 
      } else {
      //skip it
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多