繁体   English   中英

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

[英]What's the proper way to use multiple String methods on a variable?

我有一个平面文件,我正在尝试擦除以导入到数据库中。 布局不一致,但始终包含一个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()

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM