Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拆分字符串点分隔_Java_Android_String - Fatal编程技术网

Java 拆分字符串点分隔

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

我正在开发一款应用程序,用于通过手机和带有SIM卡的电子设备之间的短信进行M2M通信

当我从手机向设备发送命令时,该设备将向具有此结构的手机返回确认字符串

确认OK:

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。

Java
split
使用正则表达式,
是正则表达式中的一个特殊字符

您需要使用字符串
“\\.”

对其进行转义,为什么不直接使用

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”)
;)@如果是这样的话,它将是相当低效的,尽管它只会比较整个字符串的结尾。