how to split continuous string?
有人能通过示例代码解释如何拆分字符串吗?我把绳子贴在下面
1
| String str ="000F33353238343830323038353239323300000133B5150A8C002E3C188007C4D950039300A1090000F0080301000200F001030900010A000018000002480000013DC70000000000"; |
给定的字符串前34位是IMEI数字,后8位是时间戳等等。
- 你是说字节?使用带有适当参数的substring()。
- "通过示例代码解释",所以不是代码工厂。
- 看看这里,可能对你有帮助。
可以使用字符串方法子字符串
1
| substring(int beginIndex, int endIndex) |
beginindex是包含的,endindex是独占的。substring返回origrianlstring的一部分的副本。所以:
1
| String part = original. substring(beginIndex, endIndex ); |
或:
1
| String part ="abcdefgh". substring(2, 4) // part will be"cd" |
在你的情况下:
1 2 3
| String imei = str. substring(0, 34);
String timestamp = str. substring(34, 34+8);
... do that for any part you want to extract. |
在写位的地方测量字节。
为了进一步了解,您可以阅读关于Java字符串、HTTP://DOCS.Oracle .COM/JavaSe/1.5.0/DOCS/API/Java/Lang/Stutn.HTML的文档。
- 但我的问题是在你的代码中只显示IMEI号码。其他人呢?我怎样才能分开还押线呢?
- @manjula添加后续的substring函数调用其他数据,如string timestamp = str.substring(34,42);。
- 我尝试过,但它在线程"main"java.lang.StringIndexOutOfBoundsException:String索引超出范围:42中得到类似错误的异常
- 如果beginindex或endindex在字符串之外,则将获取StringIndexOutOfBoundsException。在您的情况下,原始字符串(在您的问题中称为"str")少于42个字符。当您显示失败的代码和输出时,我将引导您完成。你可以在你的问题后面加上这个。
- 感谢U J&246;rg beyer
使用String.substring(int,int)。
Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1.
注意零件返回,这意味着它不会更改原始String。
- +1用于it does not alter the original String。
- 但我的问题是在你的代码中只显示IMEI号码。其他人呢?我怎样才能分开还押线呢?
- 您似乎已经复制/粘贴了您对J&rg beyer的回复中的评论。但两者的反应都是一样的。多次使用该方法,不同范围的int。