0

我在这样的记事本中有一个文本字符串

记事本中的文本:

date amount intrest tenure debitamount name address state city zipcode phone altphone mailid refaddress ref  refphoneno emptype employment


12/11/1987 12345 3.5 144 32456 durga f rao 456 under road
dallas dl 2435 2222-22-2222 2222-22-2222 durgafrao@gmail.com
165 nala road raj 22-22-22-2222 it 12
15/05/1986 2345 6.4 144 45789 rama k nand 789 residensy  
newyork ny 2222-22-2222 2222-22-2222 ramaknand@yahoomail.com
189 ring road hen  22-22-22-22-2222 it 12
16/12/1985 1234 6.5 144 35265 rama j rao 123 dura residensy meknoor
mn 2222-22-2222 2222-22-2222 ramajrao@orkut.com 891 cing road vinky
22-22-22-2222 it 12
12/11/1987 12345 3.5 144 32456 durga f rao 456 under road dallas dl
2435 2222-22-2222 2222-22-2222 durgafrao@gmail.com 165 nala road raj
22-22-22-2222 it 12


         out put should be like below
in between name and address single space and all other double space


12/11/1987  12345  3.5  144  32456  durga f rao  456 under road
dallas  dl  2435  2222-22-2222  2222-22-2222  durgaao@gmail.com
165 nala road  raj  22-22-22-2222  it  12
15/05/1986  2345  6.4  144  45789  rama k nand  789 residensy  
newyork  ny  2222-22-2222 2222-22-2222  ramaad@yahoomail.com
189 ring road  hen  22-22-22-22-2222  it  12
16/12/1985  1234  6.5  144  35265  rama j rao  123 dura residensy  meknoor
mn  2222-22-2222  2222-22-2222  ramajo@orkut.com  891 cing road  vinky
22-22-22-2222  it  12
12/11/1987  12345  3.5  144  32456  dura f rao  456 under road  dallas  dl
2435  2222-22-2222  2222-22-2222  durga@gmail.com  165 nala road  raj
22-22-22-2222  it  12

我希望我的输出应该像下面在名称和地址单个空格和所有其他双空格之间?

我写了下面的代码,但我无法得到想要的输出

任何人都可以帮助我吗?

我试过的代码:

public static String newLine = System.getProperty("line.separator");


    public static void main(String args[]){
        FileWriter iWrite=null;

         try {
             iWrite = new FileWriter("C:/Documents and Settings/pavan/My Documents/output.txt");
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } 

        try {
List<String> lines = FileUtils.readLines(new File("C:/Documents and Settings/pavan/My Documents/input.txt"));

        for(String lines1:lines){

            iWrite.write(lines1);

            iWrite.write(newLine);
        }
        iWrite.close();

        } catch (IOException e) {
            e.printStackTrace();
        }


    }
4

1 回答 1

0

这闻起来是一个家庭作业问题,所以我没有考虑最佳解决方案,但这里是 sudo 代码,如果你需要,你可以做什么。

在此之前,让我假设数据实际上是基于您的标题的一行:

12/11/1987 12345 3.5 144 32456 durga f rao 456 under road dallas dl 2435 2222-22-2222 2222-22-2222 durgafrao@gmail.com 165 nala road raj 22-22-22-2222 it 12

  • 创建一个 ArrayList of Arrays akaArrayList<String[]>
  • 对于您阅读的每一行,使用split(" ")split("\s")根据空格将换行符拆分为字符串
  • 将所有行拆分并存储在 arraylist 中后,您可以遍历列表
  • 在字符串数组列表中,您可以使用 hack 遍历数组
  • 诀窍是您知道在什么时候需要添加额外的空间,因此当您到达特定位置时,您可以在数组中追加和额外的空间。在其他任何地方,您都可以只附加一个空格。

同样,这不是最佳解决方案。

至于您当前的代码,您所做的只是读取一行并附加一个 newLine 字符,然后再将其写回文件。所以你所有的代码都在做

啊啊啊

bbb

ccc

进入

啊啊啊

bbb

ccc

本质上,做的不多。

于 2013-02-11T06:29:38.863 回答