2016-08-18 166 views
2

我对Java很陌生,我正在开发一个小项目。我的问题是我有一个很大的字符串,其中包含大量由"$$$"分隔的数据。我搜索了一下,发现了chatAt()方法,但这不是我要找的,因为我没有为每个数据指定一定数量的字符。通过分隔符将长字符串潜入小字符串

我给你举个例子更好地理解我的问题:

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

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

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

+0

我得到downvoted,我不知道为什么,我的道歉,如果我打破了一些规则,得到我的答案,谢谢! – DrayneZ

+0

请参阅我的回答,如果它适合您,请考虑接受答案(请参阅[如何接受SO答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-答案)) –

回答

4

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

+0

谢谢你,先生! – DrayneZ

+0

见https://ideone.com/KRjEJZ –

+0

编辑,谢谢检查。 – ByeBye

2

字符串作为拆分方法。 这样做:

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 
+0

非常感谢您的先生! – DrayneZ

+0

'“$$$”'不起作用 - https://ideone.com/KRjEJZ –

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