Java拆分命令行参数

时间:2014-01-27 03:17:10

标签: java string split

找到字符时,我无法拆分字符串。我知道如何在数组中拆分字符串。但是我不知道如何在将字符串作为命令行参数传递时拆分它。这是一个传入的字符串参数,我必须在找到按位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"

4 个答案:

答案 0 :(得分:1)

/**
   <P>{@code java SplitXmpl}</P>
 **/
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

答案 1 :(得分:1)

另一种可能的解决方案:

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"

答案 2 :(得分:0)

命令行参数只是一个String数组。因此,您可以像处理任何其他String对象一样处理它们。看看String API您要尝试实现的功能,replace()方法就足够了。

答案 3 :(得分:0)

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

  1. 输入是硬代码字符串或
  2. 作为命令行参数给出的输入应该没有空格,然后它将被视为不同的参数。例如:asasa asaas assaa有三个参数而asasaasaasassaa只有一个参数
  3. 对于第一种情况,上述答案可以起作用,但对于第二种情况,以下代码片段可以正常工作

    <强> 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"));
        }
    }
    

    <强>输出

    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