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"
/**
   <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

另一个可能的解决方案:

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"

命令行参数不过是字符串数组。因此,您可以像其他任何字符串对象一样对其进行处理。查看您要实现的功能的字符串API,替换()方法应该足以适合您。

如果使用以下假设

,上述答案是正确的
  1. 输入是硬码字符串或
  2. 当作为命令行参数给出时,输入应该没有空间,然后将其视为不同的参数。例如:asasa asaas assaa有三个参数,asasaasaasassaa只有1个参数

对于第一种情况,上述答案可以起作用,但是对于第二种情况,以下代码段作品

输入

tassimo T46家居酿造系统| 43-0439-6 | 17999 | 0.30:Moto精确适合后雨刷刀片| 0210919 | 799 | 0.0:Easton Stealth Reflex Reflex Reflex Composite曲棍球曲棍球棒|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"));
    }
}

输出

拆分器60-3823-0 39999 0log4-ton83-4567-0 8999 0.5Yardworksstick HockeyCompositereFlexSthealtheastonblade 0210919 799 0.0WiperRearFitPrecisesystem 43-0439-6 17999 0.30MotoBrewingHoming46Tassimo

最新更新