在Java中获取单个字符串中的所有参数
我需要获取整个参数序列作为一个字符串,我使用以下代码,替换逗号和两个方括号在Java中获取单个字符串中的所有参数,java,Java,我需要获取整个参数序列作为一个字符串,我使用以下代码,替换逗号和两个方括号 Arrays.toString(args).replace(",", "").replace("[", "").replace("]", ""); 假设我使用以下参数运行它: 你好,你是个程序员,你是个很棒的人 通过使用Arrays.toString()我得到: [你好,你是一个程序员,你是一个很棒的家伙] 因此,通过使用.replace()我实际上得到: “你好,你是一名程序员,你是一个很棒的人” 我只是觉得上面的代
Arrays.toString(args).replace(",", "").replace("[", "").replace("]", "");
假设我使用以下参数运行它:
你好,你是个程序员,你是个很棒的人
通过使用Arrays.toString()
我得到:
[你好,你是一个程序员,你是一个很棒的家伙]
因此,通过使用.replace()
我实际上得到:
“你好,你是一名程序员,你是一个很棒的人”
我只是觉得上面的代码太乱了,即使它还在工作。我怎样才能只用一种方法来减少这样的句子呢 我建议使用StringBuilder。它非常有效,尤其是当您使用字符串的总长度(在循环中检查)作为构造函数参数创建实例时。
有关更多信息,请查看:我喜欢Commons Lang的: ,或者,如果零件之间需要分隔符
join(args, ' ');
但我认为你问错了问题。如果希望保留从命令行传入的字符串,则需要在shell中引用它。然后将整个内容作为参数数组中的第一个字符串。否则,无法恢复例如连续空间:
java -jar MyApp.jar "Hello, you're a programmer, you're a great guy"
字符串数组可以转换为单个字符串,如下所示
StringBuilder builder = new StringBuilder();
for (String str: args)
{
builder.append(str);
}
System.out.println(builder.toString());
您是否出于某种原因将字符串按逗号拆分,然后将其放入ArrayList?不管怎样,回答这个问题时不要试图猜测所有的坏事 你可以用一个替换品来做,但是。。。嗯
public static void main(String[] args) {
ArrayList<String> myArray = new new ArrayList<String>();
myArray.add("hello");
myArray.add("I");
myArray.add("Am");
myArray.add("Ben");
myArray.add("!");
System.out.println(myArray.toString().replaceAll("\\[(.*)\\]", "$1").replaceAll(",", ""));
}
publicstaticvoidmain(字符串[]args){
ArrayList myArray=新建ArrayList();
myArray.add(“hello”);
myArray.add(“I”);
myArray.add(“Am”);
myArray.add(“Ben”);
myArray.add(“!”);
System.out.println(myArray.toString().replaceAll(“\\[(.*)\\]”,“$1”).replaceAll(“,”,”);
}
你可以
main()
,特别是它接受参数的方式(我不确定这是否可行).toString()
编写一个新的数组子类最后一个可能是最少的工作,特别是如果您不打算大量使用它的话。args的可能值是什么?我无法理解与CLASSPATH和RMI的连接。
public static void main(String[] args) {
ArrayList<String> myArray = new new ArrayList<String>();
myArray.add("hello");
myArray.add("I");
myArray.add("Am");
myArray.add("Ben");
myArray.add("!");
System.out.println(myArray.toString().replaceAll("\\[(.*)\\]", "$1").replaceAll(",", ""));
}