gpt4 book ai didi

java - 根据参数输入减少或增加循环

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:06 27 4
gpt4 key购买 nike

我有一个 ArrayList,其中包含大小为 1000 的字符串。我正在循环该 ArrayList 并查找单词并尝试将它们形成一个正方形。例如如下:

C A R D
A R E A
R E A R
D A R T

它正在工作,但它涉及大量嵌套循环,并且我在本例中对循环进行硬编码,我试图形成一个 4x4 的正方形。

我希望能够灵活地传递正方形大小,例如 5x5 或 6x6 等,并相应地循环。我怎样才能做到这一点。

如果这只是一个循环,我只需传入一个整数并根据该整数进行循环。但由于我是嵌套的,所需的 For 循环数量会有所不同,因此会很困惑。

当我形成 4x4 的正方形时,我最终循环 4 次,每个循环检查不同的子字符串以得出正确的正方形。当需要 5x5 时,我需要 5 个循环来进行检查。我的意思是解决以下问题:根据参数/或循环方式增加减少循环,而无需创建这么多 For 循环。我可以得到一些关于这方面的指导吗?

void makeWord(ArrayList<String> arr, int size){ //want to use this size to determine amount of loop

String first, second, third, fourth;
for (int i = 0; i < arr.size(); i++) {

first = arr.get(i);

for (int j = 0; j < arr.size(); j++) {
if(first.substring(1,2).equals(arr.get(j).substring(0,1)) &&
(!first.equals(arr.get(j)))){
second = arr.get(j);
}
else {
second = " ";
}

if (!second.trim().isEmpty()) {
for (int k = 0; k < arr.size(); k++) {
if (first.substring(2, 3).equals(arr.get(k).substring(0, 1)) &&
second.substring(2, 3).equals(arr.get(k).substring(1, 2)) &&
(!first.equals(arr.get(k)) && (!second.equals(arr.get(k))))) {
third = arr.get(k);
} else {
third = " ";
}


}
}
}
}
}

最佳答案

我不完全确定我的问题是否正确,但如果您正在寻找一种使代码更加灵活的方法,以便可以构建任何大小的正方形,那么您的主要问题是存储字符串的方式。

由于您的循环取决于您定义的字符串数量,因此您可以通过对字符串变量进行硬编码来限制自己。或者,您可以简单地将文本存储在数组矩阵中,如下所示:

String[][] matrix = new String[size][size];

这允许您构建任何大小的正方形,而且您不再需要所有这些 substring() 调用,这也可能会提高性能。

关于java - 根据参数输入减少或增加循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36519260/

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