gpt4 book ai didi

java - Java 中的 List 错误

转载 作者:行者123 更新时间:2023-11-30 06:30:46 24 4
gpt4 key购买 nike

我有一个程序来创建一个字符串来构建一个表,它工作正常,直到我需要“离开循环”(当 allClear 应该为 true 时),但它一直返回 false。

我尝试打印字符串ret,它总是得到一个像“| | ”这样的字符串。既然发生了这种情况,则意味着 List l 将所有字符串设置为“”,在这种情况下,方法 allClear 应返回 true。

这是为表构建列的方法的代码,它获取包含所有字符串的列表以及表应该有多少列,然后返回包含所有表字符串的字符串。

它应该返回一个字符串,例如:“Col 1 | Col 2 | Col 3\nCol 1 | Col 2 | Col 3”,

public static String buildNCol(List<String> l, int n)throws NotEnoughStringsException{
if(l.size()<n)throw new NotEnoughStringsException("Not enough Strings given");
int colSize = colSize(n);
int colN,curChar,curSize;
String ret="",temp="";
boolean check = true;
while(check){
ret="";
for(colN=0;colN<n;colN++){
temp = getLine(l,colN,colSize);
for(curSize=temp.length();curSize<colSize;curSize++)temp+=' ';
if(colN!=n-1)temp+=" | ";
ret+=temp;
}
ret+='\n';
for(colN=0;colN<n;colN++)l.set(colN,cutString(l.get(colN)));
if(allClear(l,n))check=true; //This is where the error happens
}
return ret;
}

这是 allClear 方法。此方法检查列表中所有前 n 个字符串是否都设置为“”、null 或“\n”。

private static boolean allClear(List<String> l,int n){
int i;
String temp;
for(i=0;i<n;i++){
temp = l.get(i);
if(temp!=null&&temp.length()>1) return false;
if(temp.length()==1&&temp.charAt(0)!='\n')return false;
}
return true;
}

最佳答案

正如凯文·安德森在评论中所说,check 最初设置为 true,当 allClear 返回 true 时有条件地设置为 true。 while 循环内没有任何内容将 check 设置为 false 或发出中断,因此它将永远循环。

您可以通过将 check 设置为 false 来解决此问题,如下所示:

check = false;

关于java - Java 中的 List<String> 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46186849/

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