Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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_Arraylist - Fatal编程技术网

Java 向数组列表中的字符串添加文本

Java 向数组列表中的字符串添加文本,java,string,arraylist,Java,String,Arraylist,我正在尝试创建一个方法,该方法将接收ArrayList上的字符串,然后将文本添加到每个字符串的开头。比如如果我有一个名字的数组列表{乔恩,吉米,凯尔}。我希望该方法在名称之前的字符串中放置“早上好”。所以它会返回“早上好,jon”,“早上好,jimmy”,“早上好,kyle”。我已经搜索并找到了append,但它似乎是用于数组而不是数组列表。 我真的找不到一个好的起点。任何帮助都将不胜感激。谢谢 代码真的没什么用,但至少它是有意义的 public adding(ArrayList<Str

我正在尝试创建一个方法,该方法将接收ArrayList上的字符串,然后将文本添加到每个字符串的开头。比如如果我有一个名字的数组列表{乔恩,吉米,凯尔}。我希望该方法在名称之前的字符串中放置“早上好”。所以它会返回“早上好,jon”,“早上好,jimmy”,“早上好,kyle”。我已经搜索并找到了append,但它似乎是用于数组而不是数组列表。 我真的找不到一个好的起点。任何帮助都将不胜感激。谢谢

代码真的没什么用,但至少它是有意义的

 public adding(ArrayList<String> al)
    {
        StringBuilder us = new StringBuilder();
           us.append("("+al[0]);
           for(int i = 1; i < al.length;i++) 
           {
              us.append("Good Morning, " + al[i]);
           }
           return us;
    } 
公共添加(ArrayList al)
{
StringBuilder us=新的StringBuilder();
美国附加(“+al[0]);
对于(int i=1;i
字符串是不可变的。因此必须在列表中再次设置该值

public void adding(ArrayList<String> al){
        for(int i = 0; i < al.size();i++){                  
              al.set(i,"Good Morning, "+al.get(i));
        }
}
public void添加(ArrayList al){
对于(inti=0;i
试试这个

public void adding(ArrayList<String> al)
{
       for(int i = 0; i < al.size();i++) 
       {
          al.set(i,"Good Morning , "+al.get(i));
       }
}
public void添加(ArrayList al)
{
对于(int i=0;i
见此


,java.lang.Iterable)

您可以使用Apache Commons lang,它有一个StringUtils类。它有一个连接函数,将数组连接在一起形成字符串

例如:

String result="Good morning ";
result +=StringUtils.join(new String[] {"jon", "jimmy", "kyle"}, ", Good morning ");

join()函数接受Iterable对象,因此它也适用于list。

字符串是不可变的,因此您必须再次添加到list并删除以前的字符串。另外,为什么在for循环中从i=1循环?应该是i=0。值得注意的是,您的设计决策本身可能有缺陷。为什么需要存储“早上好,“在他们的名字之前?似乎最好是将名称保存在AL(唯一部分)中,并且无论何时,只要您想在前面打印Good Morning,然后在该点与字符串连接。尽管只有我的2美分:一个指向潜在解决方案的链接总是受欢迎的,但是请在链接周围添加上下文,这样您的其他用户就会知道它是什么以及它为什么在那里。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久脱机。感谢您的宝贵评论。我将比StringBuilder更直接地遵循这一点solution@Cruncher更直接,但效率不高。不过,在大多数情况下,我都会这样做with@StormeHawke创建一个新的字符串生成器来附加两次比将一个字符串文本与另一个字符串连接起来要快?@StormeHawke:),是的,我只是在想。如果创建一个新的StringBuilder并将其附加两次比连接字符串快,那么编译器只会在连接的任何地方使用StringBuilder。但坦率地说,我不知道串联是如何实现的,也不知道为什么向StringBuilder追加10次比10次串联要快。我只知道何时使用StringBuilder以及何时不使用StringBuilder以及为什么使用
StringBuilder
的用例?方法集不适用于参数。另外,当返回方法时,我会返回al correct?实际上,该方法不必返回任何内容。您传入的ArrayList将被更改。@Sabbath为什么
set()
不适用于参数..?根据