0

我有一个带有字符串的文本文件,如下所示

1.dfaf 2.agdagdag 3.dgdfg 4.sdfsasd 5.dfdf 6.gdg7.fadgd8.dsgg9.fgdsf 10.trete

我知道从文件中读取它并写入新文件的逻辑

但我想知道将其拆分为数字并在输出文件中写入新行的逻辑

喜欢

1.dfaf
2. agdagdag
3. dgdfg

ETC...

如何得到它。

4

6 回答 6

1

如果您只想写入而不存储新字符串,则可以使用以下操作。只需用换行符替换空格字符!因此,新创建的字符串将采用您希望将其写入文件的确切格式。

  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() 而获得一些额外积分。我自己做的!

于 2012-05-10T17:06:22.120 回答
0

您应该使用 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]);
}
于 2012-05-10T17:14:27.330 回答
0

您可以使用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来执行此操作,但似乎不鼓励这样做。

这是你的意思吗?

于 2012-05-10T17:06:38.363 回答
0

尝试 String.split http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String )

您需要学习一些正则表达式才能使用它,但是正则表达式是一个非常值得学习的东西。

于 2012-05-10T17:02:13.693 回答
0

也许这可能会有所帮助:

  • 获得字符串后,查找与 匹配的所有子字符串\d+\.[a-z]+。为此,您需要java.util.regex.Matcher和/或java.util.regex.Pattern. 您可以在测试工具(Java™ 教程 > 基本类 > 正则表达式)中找到一个示例。看方法matcher.find()matcher.group()
  • 然后,如果要在数字和文本之间插入空格,则必须用.with分隔每个子字符串。split

我希望这会有所帮助。祝你好运!

于 2012-05-10T17:25:26.390 回答
0

String.split(Sting regex)将是一个很好的起点。此外,正则表达式将是解决您的问题的必要附加部分。

于 2012-05-10T17:05:23.873 回答