2014-02-05 103 views
2

我有一个文件,在每行末尾需要删除一个额外的插入符号。这样做最好的方法是什么?是否始终是需要删除的行中的第六个脱字符号。删除文件的每一行中最后一个字符的最佳方法

我曾考虑过使用扫描仪来遍历每个字符,然后在每次击中^时增加一个变量。从这里开始,如果变量在被6除后有余数0,我会写一个空格而不是^。我只是创建一个新文件来写入,而原始文件是一个临时文件。这样做会好还是有更好的方法来解决这个问题?

我相信我也可以使用脱字号作为分隔符,并使用递增策略来确定何时写脱字符号。

我宁愿用Java编写的方法来照顾这一点,因为这在

我已经证明下面什么文件的每一行会一个java程序写入原始文件是通过一个方法的程序看起来像。

02/03/2014^CV-13-798497^10/31/2013^N/A^SH^CUYAHOGA COUNTY SHERIFF DEPT SERVICE FEE $43.00^ 
02/03/2014^CV-13-798497^10/31/2013^N/A^CS^NO SALE FORECLOSURE CLERK FEE - $5.00^ 
02/03/2014^CV-13-798497^10/22/2013^P1^CS^FORECLOSURE PAGE COUNT^ 
+0

标题说: “去掉最后一个字符”,但在这个问题你提到的第6插入符号。这是什么?你可以使用哪些工具? sed,任何特定的编辑器? – Bugs

+0

你的问题有哪些参数?这是否需要成为一个脚本(Windows或Linux),或者这是你有兴趣上传到程序中的东西吗? – useSticks

+0

正则表达式只不过是:'\^$'' – MElliott

回答

2

Java解决方案:

// read file data into a String 
String data = new Scanner(new File("file.txt")).useDelimiter("\\Z").next(); 
// replace all^from end of line using (?m) - MULTILINE switch 
data = data.replaceAll("(?m)\\^$", ""); 
+0

工程太棒了!如何才能删除每行上的最后一个脱字符? – Ctech45

+0

这是因为'\\^$'只在最后找到'^'。 – anubhava

+1

太棒了,谢谢! – Ctech45

0

你可以用sed很容易地做到这一点:

sed 's/\^$//' inputfile > outputfile 
相关问题