Java 拆分字符串点分隔
我正在开发一款应用程序,用于通过手机和带有SIM卡的电子设备之间的短信进行M2M通信 当我从手机向设备发送命令时,该设备将向具有此结构的手机返回确认字符串 确认OK:Java 拆分字符串点分隔,java,android,string,Java,Android,String,我正在开发一款应用程序,用于通过手机和带有SIM卡的电子设备之间的短信进行M2M通信 当我从手机向设备发送命令时,该设备将向具有此结构的手机返回确认字符串 确认OK: DEV33456, 15, Date: yy/mm/dd-hh:mm:ss. OK 确认错误: DEV33456, 15, Date: yy/mm/dd-hh:mm:ss. ERROR 现在在我的应用程序中,我必须管理此消息以获取相关信息。例如,消息的第一部分是标识代码(DEV33456),因此为了得到它,我拆分消息: Str
DEV33456, 15, Date: yy/mm/dd-hh:mm:ss. OK
确认错误:
DEV33456, 15, Date: yy/mm/dd-hh:mm:ss. ERROR
现在在我的应用程序中,我必须管理此消息以获取相关信息。例如,消息的第一部分是标识代码(DEV33456),因此为了得到它,我拆分消息:
String[] separated = message.split(",");
String ident = separated[0]; //DEV33456
但是现在,我需要最后一个字(OK或ERROR)来确定消息是否正常。要做到这一点,我认为最简单的方法应该是使用OK或ERROR单词前面的点分割消息。是整个消息中的唯一一点,因此它应按如下方式拆分:
String[] separated = message.split(".");
String unused = separated[0]; //DEV33456, 15, Date: yy/mm/dd-hh:mm:ss
String error = separated[1]; //OK or ERROR
但是它抛出了一个ArrayIndexOutOfBoundsException
并对其进行了调试,我发现在分隔的
字符串数组的第一行之后,它的长度应该是2,它的长度是0
使用
“
拆分字符串时是否有任何问题?我使用“,”
完成了相同的过程来拆分它,它正确地完成了int。Javasplit
使用正则表达式,
是正则表达式中的一个特殊字符
您需要使用字符串“\\.”
对其进行转义,为什么不直接使用
message.endsWith("OK")
检查这是否是您想要的:
if(message.substring(message.length()-2, message.length())
.toLowerCase().contains("ok"))
Log.d("yes");
else
Log.d("no");
希望是这样。我甚至不知道这个表达。我会考虑的!对于不区分大小写的方式
message.toUpperCase().endsWith(“OK”)
;)@如果是这样的话,它将是相当低效的,尽管它只会比较整个字符串的结尾。