我有一个带有字符串的文本文件,如下所示
1.dfaf 2.agdagdag 3.dgdfg 4.sdfsasd 5.dfdf 6.gdg7.fadgd8.dsgg9.fgdsf 10.trete
我知道从文件中读取它并写入新文件的逻辑
但我想知道将其拆分为数字并在输出文件中写入新行的逻辑
喜欢
1.dfaf
2. agdagdag
3. dgdfg
ETC...
如何得到它。
我有一个带有字符串的文本文件,如下所示
1.dfaf 2.agdagdag 3.dgdfg 4.sdfsasd 5.dfdf 6.gdg7.fadgd8.dsgg9.fgdsf 10.trete
我知道从文件中读取它并写入新文件的逻辑
但我想知道将其拆分为数字并在输出文件中写入新行的逻辑
喜欢
1.dfaf
2. agdagdag
3. dgdfg
ETC...
如何得到它。
如果您只想写入而不存储新字符串,则可以使用以下操作。只需用换行符替换空格字符!因此,新创建的字符串将采用您希望将其写入文件的确切格式。
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() 而获得一些额外积分。我自己做的!
您应该使用 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]);
}
您可以使用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 )
您需要学习一些正则表达式才能使用它,但是正则表达式是一个非常值得学习的东西。
也许这可能会有所帮助:
\d+\.[a-z]+
。为此,您需要java.util.regex.Matcher
和/或java.util.regex.Pattern
. 您可以在测试工具(Java™ 教程 > 基本类 > 正则表达式)中找到一个示例。看方法matcher.find()
和matcher.group()
。.
with分隔每个子字符串。split
我希望这会有所帮助。祝你好运!
String.split(Sting regex)
将是一个很好的起点。此外,正则表达式将是解决您的问题的必要附加部分。