我有一个字符串,我需要从列表中放置值,但是当我循环列表时,我将在迭代中得到一个值。
public class Test2 {
public static void main(String[] args) throws ParseException, JSONException {
List<String> value=new ArrayList<String>();
value.add("RAM");
value.add("26");
value.add("INDIA");
for(int i=0;i<value.size();i++){
String template="My name is "+value.get(i) +" age is "+value.get(i)+" country is"+value.get(i);
System.out.println(value.get(i));
}
o/p should be like this: String ="My name is +"+RAM +"age is "+26+"Country is"+INDIA;
}
}
答案 0 :(得分:1)
您不需要for
循环,只需使用index
的{{1}}访问元素,如下所示:
List
另外,我建议您使用System.out.println("My name is "+value.get(0) +
" age is "+value.get(1)+" country is"+value.get(2));
附加字符串,这是最佳做法,如下所示:
StringBuilder
答案 1 :(得分:0)
你不需要任何循环!此外,您不需要任何数组列表我很抱歉,但我完全可以理解您需要什么,但我的代码将帮助您:
List<String> value = new ArrayList<String>();
value.add("RAM");
value.add("26");
value.add("INDIA");
String template = "My name is " + value.get(0) + " age is " + value.get(1) + " country is" + value.get(2);
System.out.println(template);
// o/p should be like this: String ="My name is +"+RAM +"age is
// "+26+"Country is"+INDIA;
答案 2 :(得分:0)
发生的事情是,在每次迭代中,您都会获取列表的第i个元素,并将其放置在String模板的所有位置。
正如@javaguy所说,如果您的列表中只有这三个项目,则不需要使用for
循环,而另一个解决方案是使用String.format
:
String template = "My name is %s age is %s country is %s";
String output = String.format(template, value.get(0), value.get(1), value.get(2));
它可能有点慢(有趣的讨论here)但是表演在你的情况下似乎并不相关,所以两种选择之间的选择主要基于个人品味