List<String> list1 = new ArrayList<String>(words.length);
List<String> list2 = new ArrayList<String>(word.length);
for(String x: list1){
for(String y: list2){
if(x.equalsIgnoreCase(y)){
System.out.print(list1.indexOf(x) +" "+ ",");
}
}
}
对于此功能,运行后,输出将为2,5,7 .... 9, 我的问题是如何删除最后一个逗号?
答案 0 :(得分:2)
我会在开头打印逗号,就像这样 -
boolean first = true;
for(String x: list1){
for(String y: list2){
if(x.equalsIgnoreCase(y)){
if (first) {
first = false;
} else {
System.out.print(", "); // <-- or " ," if you prefer.
}
System.out.print(list1.indexOf(x));
}
}
}
答案 1 :(得分:0)
你将不得不弄清楚最后一个项目的印刷时间。
你可以通过首先遍历列表并找出最后一个逗号的位置来做到这一点,或者你可以使用StringBuilder构建整个String,然后在完成时使用逗号。
或者,您可以将之前的逗号放在除第一个单词之外的每个单词的单词中。
答案 2 :(得分:0)
一种解决方案是使用循环控制索引:
int i,j;
for(i = 0;i < x.size();i++){
for(j = 0;j < y.size() - 1; j++){
if(list1.get(i).equalsIgnoreCase(list2.get(j))) {
System.out.print(list1.indexOf(x) +" "+ ",");
}
}
if(list1.get(i).equalsIgnoreCase(list2.get(j))) {
System.out.print(list1.indexOf(x));
}
}
答案 3 :(得分:0)
使用Iterator
检查列表中是否还有下一个元素。
System.out.print(list1.indexOf(x) +" ");
if(itr.hasNext()) {
System.out.print(" ,"); // print the comma if there still elements
}
答案 4 :(得分:0)
为了完整起见,这里是Java 8:
final String joined = list1.stream().
flatMap(s -> list2.stream().filter(y -> s.equalsIgnoreCase(y))).
mapToInt(s -> list1.indexOf(s)).
mapToObj(Integer::toString).
collect(Collectors.joining(", "));
答案 5 :(得分:0)
您可以在构建字符串
后删除最后一个逗号构建字符串:
StringBuilder output = new StringBuilder();
for(String x: list1){
for(String y: list2){
if(x.equalsIgnoreCase(y)){
output.append(list1.indexOf(x) +" "+ ",");
}
}
}
删除最后一个逗号打印:
System.out.println(output.substring(0, output.lastIndexOf(",")));
答案 6 :(得分:0)
str = str.replaceAll(", $", "");
答案 7 :(得分:-1)
这很容易,这样做:
Boolean b = false;
for(String x: list1){
for(String y: list2){
if(x.equalsIgnoreCase(y)){
System.out.print((b ? "," : "") + list1.indexOf(x));
b = true;
}
}
}