Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java拆分命令行参数_Java_String_Split - Fatal编程技术网

Java拆分命令行参数

Java拆分命令行参数,java,string,split,Java,String,Split,当找到字符时,我在拆分字符串时遇到问题。我知道在数组中如何分割字符串。但是当字符串作为命令行参数传递时,我不知道如何拆分它。这是一个传入的字符串参数,当找到按位或时,我必须添加空格,并且当找到冒号时,我必须添加新行。我真的不知道如何处理这个问题,当它作为一个论点通过。任何帮助都会很棒,谢谢 "Tassimo T46 Home Brewing System|43-0439-6|17999|0.30:Moto Precise Fit Rear"+ "Wiper Blade|0210919|799|0

当找到字符时,我在拆分字符串时遇到问题。我知道在数组中如何分割字符串。但是当字符串作为命令行参数传递时,我不知道如何拆分它。这是一个传入的字符串参数,当找到按位
时,我必须添加空格,并且当找到
冒号
时,我必须添加新行。我真的不知道如何处理这个问题,当它作为一个论点通过。任何帮助都会很棒,谢谢

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

命令行参数只是一个字符串数组。因此,您可以像处理任何其他字符串对象一样处理它们。请查看,对于您试图实现的功能,replace()方法应该足够了。

另一种可能的解决方案:

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"

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

  • 输入是硬代码字符串或
  • 当作为命令行参数提供时,输入应该没有空间,然后它将被视为不同的参数。例如:
    asasaas-asaa
    有三个参数,
    asasasaa
    只有一个参数
  • 对于第一种情况,上面的答案可以工作,但是对于第二种情况,下面的代码片段可以工作

    输入

    塔西莫T46家用酿造系统| 43-0439-6 | 17999 | 0.30:Moto精密安装后雨刮片| 0210919 | 799 | 0.0:Easton隐形反射复合曲棍球棒| 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.5 YardworksStick曲棍球复合材料FlexStealthEaston刀片0210919 799 0.0 刮水器修理精度系统43-0439-6 17999 0.30
    MotoBrewingHomeT46Tassimo

    命令行参数位于一个数组中。请澄清您的问题,并发布一些您迄今为止尝试过的代码
    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"
    
    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"));
        }
    }