我想拆分从蓝牙中获取的字符串。我正在使用
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+","");
之前是否使用过分裂字符串。 如果我在没有分隔符的情况下获得了已损坏的数据,那么应用程序会在尝试不可能时崩溃。
答案 0 :(得分:1)
您可以通过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
}
答案 1 :(得分:1)
试试这个,我在我的应用中使用它。
String container = numberSpeed ;
String content = "\\D+";
boolean containerContainsContent = StringUtils.containsIgnoreCase(container, content);
如果它有分隔符,它将return true
,而false
则不会。{/ p>
将其与if statement
一起使用。
的离。强>
if(containerContainsContent){
//split it
} else {
//skip it
}
答案 2 :(得分:1)
这是来自tokenizer文档的引用: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
}