我是Java的新手,我正在从事一个小项目。我的问题是我有一个包含大量由"$$$"
分隔的数据的大字符串。我搜索了一下,我找到了chatAt()
方法,但它并不是我想要的,因为我没有为每个数据指定数量的字符。
我为您提供了一个更好地理解我的问题的例子:
20160818120215$$$000$$$15.00$$$article3
我有更大的输出,但我做了一个小例子只是为了解释。在这里,我将第一个数据作为具有此格式的日期:2016/08/18,12h02m15s
。然后第二个数据是代码000
,这对我来说意味着什么(不要介意);然后是第三个,这是一个价格15.00 $
。最后一个指定了描述的文章。
我只需要将这个字符串分解成更小的部分,这样每次收到它时,我都知道第1部分是日期,第2部分是代码,第3部分是价格,第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]
答案 3 :(得分:0)
感谢您的所有答案我开始使用split,但后来我发现了StringTokenizer,这太棒了!
关于如何使用它的几个例子:
https://www.mkyong.com/java/java-stringtokenizer-example/
如果某人有人来,farwell:D