gpt4 book ai didi

java - 为什么要添加方法连接 arrayList 的元素?

转载 作者:行者123 更新时间:2023-12-02 09:52:04 25 4
gpt4 key购买 nike

我有一个 boolean 方程字符串:data1+data2.data3 ..我想将字符串文本放入 arrayList eq.getEquation()

所以,最后我想要[data1,+,data2,.,data3]

这就是我的代码的目的。但问题是当我将字符串添加到我的 arrayList *(使用添加方法:eq.getEquation().add())时。我不知道为什么,但是当我这样做时: eq.getEquation().add(str.toString()); 我的字符串与前一个元素连接在一起,但没有添加它...

public void DmdViewToPasteTextFromClipboard(String text){
if(text!=null){
int item=0;
String[] ArrOfStr = text.split("");
StringBuilder str = new StringBuilder();
for(int i=0; i<ArrOfStr.length; i++){
if(!ArrOfStr[i].equals("+") && !ArrOfStr[i].equals(".") && !ArrOfStr[i].equals("¤") &&
!ArrOfStr[i].equals("!")&&!ArrOfStr[i].equals("(")|| !ArrOfStr[i].equals(")")){
str.append(ArrOfStr[i]);
}else{
//System.out.print("str : "+ str +"\n");
// eq.getEquation().add(str.toString());
eq.getEquation().add(str.toString());
eq.getEquation().add(ArrOfStr[i]);
str.replace(0, str.length(), "");
}
}
eq.getEquation().add(str.toString());
// eq.getEquation().add(str);
//System.out.print("last str : "+ str +"\n");
System.out.println("Eq of Past mathod ----> "+ eq.getEquation());

}
f.DisplayEq(eq.getEquation());
}

result : Eq of Past mathod ----> [violet+yellow]

想想

最佳答案

您的复杂条件中有一个错误,最后一个 || 可能也应该是 &&

if(!ArrOfStr[i].equals("+") && !ArrOfStr[i].equals(".") && !ArrOfStr[i].equals("¤") &&
!ArrOfStr[i].equals("!") && !ArrOfStr[i].equals("(") && !ArrOfStr[i].equals(")")) {

或者您可以定义一个运算符列表,然后检查当前字符是否在该列表中:

List<String> operators = Arrays.asList("+", ".", "¤", "!", "(", ")");
if(! operators.contains(ArrOfStr[i])) {

或者只是按字边界分割 \b,可能有一些周围的空白 \s*

List<String> tokens = Arrays.asList(text.split("\\s*\\b\\s*"));

两种方式都会得到[紫罗兰色、+、黄色]

关于java - 为什么要添加方法连接 arrayList 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56256028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com