2016-08-18 27 views
2

私はJavaには少し慣れていて、ちょっとしたプロジェクトに取り組んでいます。私の問題は、"$$$"で区切られたたくさんのデータを含む大きなStringがあることです。私はちょっと調べて、chatAt()メソッドを見つけましたが、各データに指定された数の文字がないので、私が探しているものではありません。長い文字列を区切り文字で小さな文字列にダイビング

私は私の問題をよりよく理解するためにあなたの例を与えている:

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

私は大きな出力を持っていますが、私は説明する小さな例を作りました。ここで私は最初のデータをこのフォーマットの日付として持っています:2016/08/18,12h02m15s。次に、2番目のデータは、私にとって何かを意味するコード000です(気にしないでください)。 3番目の価格は15.00 $です。最後のものは、どの記事が記述されているかを指定します。

私はそれを受け取るたびに、パート1は日付、コード2はパート2、価格はパート3、パート4はデリミタです。常に$$$になります。

+0

私はdownvotedてしまった、私はなぜ知らない、私の謝罪私の場合

それを使用する方法のいくつかの例いくつかのルールを破った、私の答えをありがとう! – DrayneZ

+0

私の答えを参照してください、あなたのために働く場合、答えを受け入れることを検討してください([回答を受け入れる方法]を参照してください(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] 

は、あなたがあなたの答えのすべてのために私は、スプリットで仕事を始めたが、その後、私は驚くべきであるStringTokenizerはを発見しworking Java demo

関連する問題