Java拆分命令行参数

找到一个字符时,我无法拆分字符串。 我知道如何在数组中拆分字符串。 但我不知道如何将字符串作为命令行参数传递时拆分。 这是一个传入的字符串参数,当找到按位Or时我必须添加空格,并且当找到colon时我必须添加一个新行。 当它作为参数传递时,我真的不知道如何解决这个问题。 任何帮助都会非常棒,谢谢。

 "Tassimo T46 Home Brewing System|43-0439-6|17999|0.30:Moto Precise Fit Rear"+ "Wiper Blade|0210919|799|0.0: Easton Stealth Reflex Composite Hockey Stick|"+ "83-4567-0|8999|0.5:Yardworks 4-Ton Log Splitter|60-3823-0|39999|0" 

 /** 

{@code java SplitXmpl}

**/ public class SplitXmpl { public static final void main(String[] igno_red) { String sInput = "Tassimo T46 Home Brewing System|43-0439-6|17999|0.30:Moto Precise Fit Rear Wiper Blade|0210919|799|0.0: Easton Stealth Reflex Composite Hockey Stick| 83-4567-0|8999|0.5:Yardworks 4-Ton Log Splitter|60-3823-0|39999|0"; String sOutput = sInput.replaceAll("\\|", " ").replaceAll(":", System.getProperty("line.separator", "\n")); System.out.println(sOutput); } }

输出:

 [C:\java_code]java SplitXmpl Tassimo T46 Home Brewing System 43-0439-6 17999 0.30 Moto Precise Fit Rear Wiper Blade 0210919 799 0.0 Easton Stealth Reflex Composite Hockey Stick 83-4567-0 8999 0.5 Yardworks 4-Ton Log Splitter 60-3823-0 39999 0 

另一种可能的方案

 public static void main(String[] args) { String s = args[0]; s = s.replace("|", " ").replace(":", "\n"); System.out.println(s); } 

运行:

 java Main "Tassimo T46 Home Brewing System|43-0439-6|17999|0.30:Moto Precise Fit Rear Wiper Blade|0210919|799|0.0: Easton Stealth Reflex Composite Hockey Stick| 83-4567-0|8999|0.5:Yardworks 4-Ton Log Splitter|60-3823-0|39999|0" 

命令行参数只是一个String数组。 所以你可以像任何其他String对象一样处理它们。 看看你想要实现的function的String API ,replace()方法应该足够了。

如果使用以下假设,则上述答案是正确的

  1. 输入是硬代码字符串或
  2. 作为命令行参数给出的输入应该没有空格,然后它将被视为不同的参数。例如: asasa asaas assaa有三个参数, asasaasaasassaa只有一个参数

对于第一种情况,上述答案可以工作,但对于第二种情况,以下代码片段可以工作

INPUT

Tassimo T46家庭酿造系统| 43-0439-6 | 17999 | 0.30:Moto Precise Fit后雨刮片| 0210919 | 799 | 0.0:Easton Stealth Reflex复合曲棍球棒| 83-4567-0 | 8999 | 0.5:Yardworks 4吨对数分配器| 60-3823-0 | 39999 | 0

 public class test { public static void main(String[] args) { int l=args.length; StringBuilder builder=new StringBuilder(); while(l-->0){ builder.append(args[l]); } System.out.println(builder.toString().replace("|", " ").replace(":","\n")); } } 

OUTPUT

Splitter 60-3823-0 39999 0Log4-Ton83-4567-0 8999 0.5 YardworksStick HockeyCompositeReflexStealthEastonBlade 0210919 799 0.0 WiperRearFitPreciseSystem 43-0439-6 17999 0.30 MotoBrewingHomeT46Tassimo