如何分割连续的字符串? [关闭]
Posted
技术标签:
【中文标题】如何分割连续的字符串? [关闭]【英文标题】:how to split continuous string? [closed] 【发布时间】:2012-03-03 14:39:42 【问题描述】:谁能通过示例代码解释如何拆分字符串?在下面我粘贴了字符串
String str="000F33353238343830323038353239323300000133B5150A8C002E3C188007C4D950039300A1090000F0080301000200F001030900010A000018000002480000013DC70000000000";
给定字符串的前 34 位是 IMEI 号和接下来的 8 位时间戳等等。
【问题讨论】:
你的意思是字节?使用带有适当参数的 substring()。 “通过示例代码解释” SO不是代码工厂。 看看here,可能对你有帮助。 【参考方案1】:你可以使用String方法substring
substring(int beginIndex, int endIndex)
beginIndex 是包容性的,而 endIndex 是独占性的。 subString 返回原始字符串的一部分的副本。所以:
String part = original.substring(beginIndex, endIndex);
或:
String part = "abcdefgh".substring(2,4) // part will be "cd"
在你的情况下:
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/String.html
【讨论】:
但我的问题是在你的代码中只显示了 IMEI 号码.. 其他人呢,我如何拆分 remaning 字符串 @Manjula 添加后续的substring
函数调用以获取其他数据,例如string timestamp = str.substring(34,42);
我试过了,但它在线程“main”java.lang.StringIndexOutOfBoundsException 中出现了类似异常的错误:字符串索引超出范围:42
如果 beginIndex 或 endIndex 在字符串之外,您将收到 StringIndexOutOfBoundsException。在您的情况下,原始字符串(在您的问题中称为“str”)短于 42 个字符。当您显示失败的代码和输出时,我将指导您完成。您可以将其附加到您的问题中。【参考方案2】:
使用String.substring(int,int)
。
返回一个新字符串,它是该字符串的子字符串。子字符串从指定的 beginIndex 开始并延伸到索引 endIndex - 1 处的字符。
注意部分Returns,这意味着它不会改变原来的String
。
【讨论】:
为it does not alter the original String
+1。
但我的问题是在你的代码中只显示了 IMEI 号码.. 其他人呢,我如何拆分 remaning 字符串
您似乎已从您对 Jörg Beyer 的回复中复制/粘贴了该评论。但两者的反应都是一样的。多次使用该方法,int
的范围不同。以上是关于如何分割连续的字符串? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
字符串的整数编码并将其用作决策树(sklearn)的输入是不是会使分割属性离散或连续?