在变量上使用多个String方法的正确方法是什么?

时间:2012-05-04 15:48:13

标签: java string

我有一个平面文件,我正在尝试清理以导入数据库。布局不一致,但始终包含一个fieldname(可变长度文本,但总是9个单词或短语之一),后跟自由格式文本字段(可变长度最多1024个字节)。我需要提取1024字节字段,并将它们排列成跨字段名的列。

输入文件:

 foo-01 bunches of data
 foo bar01 more bunches of data including a bunch of notes
 foo-01 lots of data lives in this field
 foo18 monday notes 
    ...etc.

输出文件 - 分隔,空格修剪

 foo-01;foo bar 01;foo18                 (<-- header row)
 bunches of data; more bunches of data including a bunch of notes; ;
 lots of data lives in this field; ; notes

我的策略是:阅读每一行。如果该行以九个字段名中的一个开头,我将一个子字符串(字段名后面的第一个字符 - 行中的最后一个字符 - 修剪的空格)写入适当列位置的已分隔的平面文件。

此代码有效,

 if(inputLine.startsWith("foo-01"))
 {
      String lineVal = inputLine.trim();
      int lVLen = lineVal.length();
      String outVal  = lineVal.substring(17,lVLen);
      String outValTrim = outVal.trim();
      System.out.println(evalVal+" "+inputLine+" "+outValTrim);
  }
  else 
  ...etc...

但提出了问题。

考虑:

 String outValTrim = inputLine.trim().substring(17,inputLine.trim().length()).trim();
  • 我可以使用的最大方法数是多少?例如,foo = Stringmethod1.Stringmethod2.StringMethod3()

  • 声明中的方法顺序是否有规则?

  • 在一个声明中组合方法的最佳做法是什么?一世 觉得它不那么人性化,而且我不确定效率。

1 个答案:

答案 0 :(得分:2)

方法的最大大小为64K,您不能使用比此方法更多的方法。您可能还会发现,您不需要像您想象的那样使用尽可能多的方法。

String outValTrim = inputLine.trim().substring(17).trim()

我怀疑第一个trim()不正确......

最佳做法是使代码尽可能易读且易于理解。

效率很少是最重要的问题,除非你可以证明,例如通过使用分析器,这是导致问题的原因,坚持可读性。