如何循环同名变量并在 Java 中获取逗号分隔值?
How to make a loop of variable of same name and get comma separated value in Java?
我有一串以逗号分隔的值我想运行一个循环并在一个字符串中分配所有三个变量的第一个值。例如,在这种情况下,我希望输出为
o1v1 o2v1 o3v1
o1v2 o2v2 o3v2
o1v3 o2v3 o3v3
有这种可能吗?这是我的方法。
public static void main(String[] args) {
String option1 = "o1v1,o1v2,o1v3";
String option2 = "o2v1,o2v2,o2v3";
String option3 = "o3v1,o3v2,o3v3";
for(int i=0; i<=3; i++){
}
}
我的第一个建议是,与其将其存储在三个单独的字符串中,不如将其存储在一个字符串数组中。像这样循环会更容易:
String[] options = {"o1v1,o1v2,o1v3",
"o2v1,o2v2,o2v3",
"o3v1,o3v2,o3v3"};
或
String[] options = new String[]{option1, option2, option3};
现在,您可以使用更简单的 for-each 循环,而不是使用 for 循环。如下图:
for(String option : options){
String[] opts = option.split(",");
for(String opt : opts){
System.out.print(opt+" ");
}
System.out.println();
}
在上面的代码中,你没有想到数组的大小 options
和它包含的子字符串的数量。
编辑 1
在您发表评论后,我将把这个 for-each 循环更改为新代码;
ArrayList<String> output = new ArrayList<>();
for(String option : options){
String[] opts = option.split(",");
String temp = "";
for(String opt : opts){
temp = temp + opt + " ";
}
output.add(temp)
}
现在,您可以从您的变量 output
创建如下变量:
String outOption1 = output.get(0);
.....
.....
希望这能解决您的问题。
所有选项字符串的格式都一样吗?如果是这样,您已经知道要拆分它们的索引。
String firstPlace=option1.substring(0, 5)+option2.substring(0, 5)+option3.substring(0,5);
打印出 "o1v1,o2v1,o3v1",您可以为每个想要的索引重复不同的索引。
试试下面一个
public static void main(String[] args) {
String option1 = "o1v1,o1v2,o1v3";
String option2 = "o2v1,o2v2,o2v3";
String option3 = "o3v1,o3v2,o3v3";
ArrayList<String> output = new ArrayList<String>();
String[] options1 = option1.split(",");
String[] options2 = option2.split(",");
String[] options3 = option3.split(",");
for(int i=0; i<options1.length; i++){
StringBuilder sb = new StringBuilder();
sb.append(options1[i]);
sb.append(options2[i]);
sb.append(options3[i]);
output.add(sb.toString());
}
System.out.println(output);
}
输出列表将包含您需要的所有字符串
我有一串以逗号分隔的值我想运行一个循环并在一个字符串中分配所有三个变量的第一个值。例如,在这种情况下,我希望输出为
o1v1 o2v1 o3v1
o1v2 o2v2 o3v2
o1v3 o2v3 o3v3
有这种可能吗?这是我的方法。
public static void main(String[] args) {
String option1 = "o1v1,o1v2,o1v3";
String option2 = "o2v1,o2v2,o2v3";
String option3 = "o3v1,o3v2,o3v3";
for(int i=0; i<=3; i++){
}
}
我的第一个建议是,与其将其存储在三个单独的字符串中,不如将其存储在一个字符串数组中。像这样循环会更容易:
String[] options = {"o1v1,o1v2,o1v3",
"o2v1,o2v2,o2v3",
"o3v1,o3v2,o3v3"};
或
String[] options = new String[]{option1, option2, option3};
现在,您可以使用更简单的 for-each 循环,而不是使用 for 循环。如下图:
for(String option : options){
String[] opts = option.split(",");
for(String opt : opts){
System.out.print(opt+" ");
}
System.out.println();
}
在上面的代码中,你没有想到数组的大小 options
和它包含的子字符串的数量。
编辑 1
在您发表评论后,我将把这个 for-each 循环更改为新代码;
ArrayList<String> output = new ArrayList<>();
for(String option : options){
String[] opts = option.split(",");
String temp = "";
for(String opt : opts){
temp = temp + opt + " ";
}
output.add(temp)
}
现在,您可以从您的变量 output
创建如下变量:
String outOption1 = output.get(0);
.....
.....
希望这能解决您的问题。
所有选项字符串的格式都一样吗?如果是这样,您已经知道要拆分它们的索引。
String firstPlace=option1.substring(0, 5)+option2.substring(0, 5)+option3.substring(0,5);
打印出 "o1v1,o2v1,o3v1",您可以为每个想要的索引重复不同的索引。
试试下面一个
public static void main(String[] args) {
String option1 = "o1v1,o1v2,o1v3";
String option2 = "o2v1,o2v2,o2v3";
String option3 = "o3v1,o3v2,o3v3";
ArrayList<String> output = new ArrayList<String>();
String[] options1 = option1.split(",");
String[] options2 = option2.split(",");
String[] options3 = option3.split(",");
for(int i=0; i<options1.length; i++){
StringBuilder sb = new StringBuilder();
sb.append(options1[i]);
sb.append(options2[i]);
sb.append(options3[i]);
output.add(sb.toString());
}
System.out.println(output);
}
输出列表将包含您需要的所有字符串