通过分隔符将长字符串转换为小字符串

时间:2016-08-18 09:34:11

标签: java string delimiter divider

我是Java的新手,我正在从事一个小项目。我的问题是我有一个包含大量由"$$$"分隔的数据的大字符串。我搜索了一下,我找到了chatAt()方法,但它并不是我想要的,因为我没有为每个数据指定数量的字符。

我为您提供了一个更好地理解我的问题的例子:

20160818120215$$$000$$$15.00$$$article3 

我有更大的输出,但我做了一个小例子只是为了解释。在这里,我将第一个数据作为具有此格式的日期:2016/08/18,12h02m15s。然后第二个数据是代码000,这对我来说意味着什么(不要介意);然后是第三个,这是一个价格15.00 $。最后一个指定了描述的文章。

我只需要将这个字符串分解成更小的部分,这样每次收到它时,我都知道第1部分是日期,第2部分是代码,第3部分是价格,第4部分是分隔符,这将是永远是$$$

4 个答案:

答案 0 :(得分:4)

只需使用yourString.split("\\$\\$\\$");

即可

答案 1 :(得分:2)

String作为拆分方法。 做类似的事情:

String myString = "20160818120215$$$000$$$15.00$$$article3";
String[] parts = myString.split("\\$\\$\\$"); // double backslah as split use a regex and $ is a reserved char in regex (thank Wiktor Stribiżew)
// parts[0] == 20160818120215
// parts[1] == 000

答案 2 :(得分:0)

您真正需要的是使用接受正则表达式的String#split方法。在正则表达式中,$匹配字符串的结尾,因此,您无法使用$$$

您需要使用"\\${3}" - 即3 $个文字符号。或者,您可以使用[$]{3}

删除反斜杠
String myString = "20160818120215$$$000$$$15.00$$$article3";
String[] parts = myString.split("[$]{3}");
System.out.println(Arrays.toString(parts));
// => [20160818120215, 000, 15.00, article3]

查看working Java demo

答案 3 :(得分:0)

感谢您的所有答案我开始使用split,但后来我发现了StringTokenizer,这太棒了!

关于如何使用它的几个例子:

https://www.mkyong.com/java/java-stringtokenizer-example/

如果某人有人来,farwell:D

相关问题