英文:
ArrayList lastIndexof
问题
import java.util.Scanner;
import java.util.*;
public class bracketMatch {
public bracketMatch() {
}
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("enter seq");
String[] seq = scan.nextLine().split("");
ArrayList<String> temp = new ArrayList<>();
int x = 0;
String check = null;
System.out.println(Arrays.toString(seq));
for(String brak : seq)
{
switch(brak)
{
case "(":
temp.add("(");
break;
case "[":
temp.add("[");
break;
case "{":
temp.add("{");
break;
case "<":
temp.add("<");
break;
case ")":
temp.add(")");
break;
case "]":
temp.add("]");
break;
case "}":
temp.add("}");
break;
case ">":
temp.add(">");
break;
}
}
x = temp.lastIndexOf("(");
System.out.println(x);
/*if(x != -1)
{
temp.remove(check);
temp.remove(x);
}*/
System.out.println(temp.toString());
}
}
以上代码用于匹配括号,但我遇到了 ArrayList
方法 lastIndexOf
。
然而,它没有获取正确的索引,而是像 indexOf
方法一样工作。
我应该使用堆栈或 linkedlist
代替 ArrayList
吗?
另外,关于迭代 arraylist
并删除其元素,是否可以提供帮助?因为迭代器和 foreach 会出错。
英文:
import java.util.Scanner;
import java.util.*;
public class bracketMatch {
public bracketMatch() {
}
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("enter seq");
String[] seq = scan.nextLine().split("");
ArrayList<String> temp = new ArrayList<>();
int x = 0;
String check = null;
System.out.println(Arrays.toString(seq));
for(String brak : seq)
{
switch(brak)
{
case "(":
temp.add("(");
break;
case "[":
temp.add("[");
break;
case "{":
temp.add("{");
break;
case "<":
temp.add("<");
break;
case ")":
temp.add( ")");
break;
case "]":
temp.add("]");
break;
case "}":
temp.add("}");
break;
case ">":
temp.add(">");
break;
}
}
x = temp.lastIndexOf("(");
System.out.println( x);
/* if(x != -1)
{
temp.remove(check);
temp.remove(x);
}*/
System.out.println(temp.toString()) ;
}
}
The above code is for matchingbrackets, but I stumbled upon ArrayList
method lastIndexOf
.
However, it is not fetching the correct index and is working like indexOf
method.
Should I use stack or linkedlist
instead of ArrayList
?
Also, any help on iterating an arraylist and removing its element, since iterator and foreach gives error.
答案1
得分: 0
你可以给我们提供更多信息吗?方法 lastIndexOf 正常工作,它会给你列表中对象的最后一个出现位置,它不像 indexOf 那样工作。如果你想删除 arraylist 中的最后一个 "(" 出现,只需取消注释你的 temp.remove(x) 行。
英文:
Can you give us some more information? Method lastIndexOf works properly, it gives you last occurence of object in list, it doesn't work like indexOf. If you want to delete last occurence of "(" from arraylist just uncomment your temp.remove(x) line.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论