我想使它更简单
问题描述:
我这里有我的Java代码,目的是使输出应该是这样的: 问题NEL01L01A021问题NEL01L01A021英语2016年11月22日NEL01L01A021/NEL01L01A021-problem.txt我想使它更简单
我已经做到了,但我想让它更简单。你能帮我么? import java.util.ArrayList;
public class TestTabSeparator {
String str;
ArrayList<String> strings = new ArrayList<>();
TestTabSeparator(ArrayList<String> strings) {
this.strings = strings;
}
void showArrayList() {
for (int index = 0; index < this.strings.size(); index++) {
System.out.print(this.strings.get(index) + " ");
}
}
}
其他类:
import java.util.Arrays;
import java.util.ArrayList;
public class TabSeparator {
public static void main(String[] args) {
ArrayList<String> stringList = new ArrayList();
String topicName = "problem";
String title = "NEL01L01A021";
String idTitle = "問題";
String questionNo = "NEL01L01A021";
String keyword = "英語";
String comment = "11-22-2016";
String bodyKey = "NEL01L01A021/NEL01L01A021-problem.txt";
String[] str2 = new String[7];
str2[0] = topicName;
str2[1] = title;
str2[2] = idTitle;
str2[3] = questionNo;
str2[4] = keyword;
str2[5] = comment;
str2[6] = bodyKey;
stringList.addAll(Arrays.asList(str2));
TestTabSeparator strList = new TestTabSeparator(stringList);
strList.showArrayList();
}
}
答
我有两个建议。首先,您可以直接在您的变量上执行Arrays.asList,而不是先创建数组。
ArrayList<String> stringList = Arrays.asList(topicName, title, idTitle, questionNo, keyword, comment, bodyKey)
第二个showArrayList方法可以使用String.join进行简化。
void showArrayList() {
System.out.print(String.join(" ", strings));
}
答
我这样做的:
public class TestTabSeparator {
private ArrayList<String> strings = new ArrayList<>();
private TestTabSeparator(ArrayList<String> strings) {
this.strings = strings;
}
private void showArrayList() {
strings.stream().forEach(s -> System.out.print(s+" "));
}
public static void main(String[] args) {
String topicName = "problem";
String title = "NEL01L01A021";
String idTitle = "問題";
String questionNo = "NEL01L01A021";
String keyword = "英語";
String comment = "11-22-2016";
String bodyKey = "NEL01L01A021/NEL01L01A021-problem.txt";
ArrayList stringList = new ArrayList(){{
add(topicName);
add(title);
add(idTitle);
add(questionNo);
add(keyword);
add(comment);
add(bodyKey);
}};
TestTabSeparator strList = new TestTabSeparator(stringList);
strList.showArrayList();
}
}
+0
谢谢你!我能够在java中发现新的字符串连接。就String而言,我认为它在收集数据方面击败了ArrayList。 –
尝试[代码审查堆栈交易所(http://codereview.stackexchange.com/)。 –
为什么不把它全部包装在1字符串中? – XtremeBaumer
您可以通过直接指定数组来跳过一些String声明:'String [] str2 = {“problem”,“NEL01L01A021”,etc ...};' – Berger