我正在写代码以在Java中的拆分行编写,但它无法正常工作。
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.lang.*;
public class mainprogram {
public static void main(String [] args ) throws FileNotFoundException, IOException
{
//creating object for purpose of writing into file
writFile ObjectwritFile = new writFile();
//creating object for purpose of reading from file
loadFile ObjectloadFile = new loadFile();
//this will be used for storing text into from file
String text="";
//text = ObjectloadFile.loadFile("C://names.txt");
System.out.println(text);
ObjectwritFile.writeFile("C://testfile.txt",text);
//these regexp didn't work
//String regexp = "[\r\n]+";
//String regexp = "[\s,;\n\t]+";
String regexp = "[\n]+";
//this one didn't work
//String[] lines = text.split(regexp);
String[] lines = text.split(System.getProperty("line.separator"));
for(int i=0; i<lines.length; i++){
System.out.println("Line "+i+": "+lines[i]);
ObjectwritFile.writeFile("C://testfilelines.txt","Line "+i+": "+lines[i]);
}
}
}
文本以这种格式。
John, Smith, 4 ,5 ,6
Adams, Olsen, 7,8, 3
Steve, Tomphson , 4,5 9
Jake, Oliver, 9,8,9
一旦通过行分开文本,我就必须按字母对其进行排序,但是将其编号为具有相同文本格式的文件。
您可以将扫描仪与n
用作定界符,逐行读取。
尝试以下:
String[] lines = text.split("n+");
请注意,"n"
不是一个特殊的正则角色,因此不需要逃脱。REGEX "\n"
(在Java中)是字面的"n"
为什么要手工做所有事情?只需使用可用的CSV库之一,例如Super CSV。
我不完全理解您要做什么,但是如果您的输入文本始终以格式: String,String,int,int,int
,则此groovy代码将读取行,然后通过最后三个数字按顺序排列,然后将其打印出来:
def lines = new File('textSort.txt').readLines()
lines.sort{ it.split(',')[4].trim() }
lines.sort{ it.split(',')[3].trim() }
lines.sort{ it.split(',')[2].trim() }
println lines.join('n')
这是有点骇人听闻的排序,但是除非您有一个大数据集,否则它可以完成工作,并且可以正常工作。Java代码的大大要大。
String regexp = "[\n]+";
//this one didn't work
//String[] lines = text.split(regexp);
您不需要带有额外的后拔\n
逃脱n
,因为n
是有效的逃生序列。
String regexp ="[n]+"; //will work fine