如何分割连续的字符串? [关闭]

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的范围不同。

以上是关于如何分割连续的字符串? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中由一个字符而不是连续的字符分割

字符串的整数编码并将其用作决策树(sklearn)的输入是不是会使分割属性离散或连续?

我有一个构造函数,它应该以一个字符串为例,一个地址并用“|”分割[关闭]

华为机试:字符串分割

华为笔试-字符串分割

问题14:如何拆分含有多种分隔符的字符串