次のような文字列を含むテキストファイルがあります
1.dfaf 2.agdagdag 3.dgdfg 4.sdfsasd 5.dfdf 6.gdg7.fadgd8.dsgg9.fgdsf 10.trete
ファイルから読み取り、新しいファイルに書き込むロジックを知っています
しかし、それを数字で分割して出力ファイルに新しい行に書き込むロジックを知りたい
お気に入り
1.dfaf
2. agdagdag
3. dgdfg
等...
入手方法。
次のような文字列を含むテキストファイルがあります
1.dfaf 2.agdagdag 3.dgdfg 4.sdfsasd 5.dfdf 6.gdg7.fadgd8.dsgg9.fgdsf 10.trete
ファイルから読み取り、新しいファイルに書き込むロジックを知っています
しかし、それを数字で分割して出力ファイルに新しい行に書き込むロジックを知りたい
お気に入り
1.dfaf
2. agdagdag
3. dgdfg
等...
入手方法。
新しい文字列を書き込み、保存したくない場合は、次のように使用できます。スペース文字を改行文字に置き換えるだけです!したがって、新しく作成された文字列は、ファイルに書き込むのとまったく同じ形式になります。
String orignalString = readFromFile(...); // implement this
String stringToWriteToFile = originalString.replace(" ","\n"); // so you replace the space with a \n
writeToFile(stringToWriteToFile); // implement this
これは、文字列が一貫して単一のスペースで区切られている場合にのみ機能します。
注:これが宿題の場合、全員がString.split()を使用します。したがって、革新的でString.replace()を使用すると、いくつかの追加ポイントが得られる可能性があります。自分でやった!
String.split()メソッドを使用して、これを行うことができます。
String[] result = "1.dfaf 2.agdagdag 3.dgdfg 4.sdfsasd 5.dfdf 6.gdg7.fadgd8.dsgg9.fgdsf 10.trete".split("\\s");
for (int x = 0; x < result.length; x++) {
System.out.println(result[x]);
}
StringTokenizerを使用してこれを行うこともできますが、これはお勧めできません。
それはあなたが意味したことですか?
String.split を試す http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String )
正規表現を使用するには少し学習する必要がありますが、正規表現は学習するのに非常に役立ちます。
String.split(Sting regex)
開始するのに最適な場所です。また、正規表現は、質問を解決するために必要な追加要素です。
分割機能を使用し、区切り文字を正規表現にする必要があります (スペースの後に 1 桁の数字が続きます)。
これで済むはず…
String[] arr = "1.dfaf 2.agdagdag 3.dgdfg 4.sdfsasd 5.dfdf 6.gdg 7.fadgd 8.dsgg 9.fgdsf 10.trete".split(" ");
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
おそらくこれが役立つかもしれません:
\d+\.[a-z]+
ます。そのためにはjava.util.regex.Matcher
、および/またはが必要java.util.regex.Pattern
です。テスト ハーネス (Java™ チュートリアル > 基本クラス > 正規表現)で例を見つけることができます。メソッドmatcher.find()
と を見てくださいmatcher.group()
。.
with で区切る必要がsplit
あります。これが役立つことを願っています。幸運を!