[英]How to add strings into an arraylist between two strings
我试图弄清楚如何在已经存在的两个字符串之间向字符串ArrayList中添加一个字符串。所以如果我有这个
ArrayList<String> List = new ArrayList<String>();
List.add("Yes");
List.add("No");
List.add("Maybe");
我将如何在它们之间放置单词“ Or”并使ArrayList包含“ Yes”,“ Or”,“ No”,“ Or”,“ Maybe”?
我有三个建议。
首先,要命名变量,请以小写字母开头。
其次,使用List作为变量类型,而不是ArrayList,稍后您将感谢我,请相信我。
第三,要做你想要的,有重载的方法添加来选择位置:
List<String> list = new ArrayList<String>();
list.add("Yes");
list.add("No");
list.add(1,"Maybe"); //insert into position 1 and shift everything to the right.
对于此示例,如果使用System.out.println(list);
,您将获得以下输出:
[Yes, Maybe, No]
为了添加Or
指令,它是这样的:
List<String> list = new ArrayList<String>();
list.add("Yes");
list.add("No");
list.add("Maybe");
list.add(1, "Or");
list.add(3, "Or");
System.out.println(list);
输出:
[Yes, Or, No, Or, Maybe]
另外,如果您想使程序更可重用,则可以编写一个方法,该方法将在list的任何情况下为您完成:
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("Yes");
list.add("No");
list.add("Maybe");
list.add("Probably");
list.add("Never");
List<String> orList = addOr(list);
System.out.println(orList);
}
public static List<String> addOr(List<String> list){
List<String> newList = new ArrayList<>();
int count = 0;
for(String text : list){
count++;
newList.add(text);
if (count != list.size()){
newList.add("Or");
}
}
return newList;
}
具有以下输出:
[Yes, Or, No, Or, Maybe, Or, Probably, Or, Never]
但是,如果要使用该列表为用户输出某些消息,则添加“或”不是一个好主意,因为它实际上不是信息的一部分。 最好创建方法,该方法将创建所需的输出String。
这段代码
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("Yes");
list.add("No");
list.add("Maybe");
list.add("Probably");
list.add("Never");
String niceOutput = addOr(list);
System.out.println("Choose from following options: " + niceOutput);
}
public static String addOr(List<String> list){
String orText = "";
int count = 0;
for(String text : list){
count++;
orText += '\'' + text + '\'';
if (count != list.size()){
orText += " or ";
}
}
return orText;
}
具有以下输出:
Choose from following options: 'Yes' or 'No' or 'Maybe' or 'Probably' or 'Never'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.