簡體   English   中英

在數字處分割字符串,並在Java中寫入輸出文件

[英]Split the string at numbers and write in the output file in java

我有一個帶有字符串的文本文件,如下所示

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 http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String

您需要學習一些正則表達式才能使用它,但是正則表達式是一件非常好的事情。

String.split(Sting regex)將是一個不錯的起點。 同樣,正則表達式將是解決您的問題的必要補充。

您可以使用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來執行此操作,但是似乎不建議這樣做。

這是你的意思嗎?

您應該使用split函數並將分隔符設置為正則表達式(空格后跟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+\\.[az]+匹配的所有子字符串。 為此,您需要java.util.regex.Matcher和/或java.util.regex.Pattern 您可以在測試工具中找到一個示例(Java™教程>基本類>正則表達式) 查看方法matcher.find()matcher.group()
  • 然后,您必須用分隔每個子字符串. 如果要在數字和文本之間插入空格,請使用split

希望對您有所幫助。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM