gpt4 book ai didi

java - 使用另一个二维数组的索引在数组中搜索和替换

转载 作者:行者123 更新时间:2023-12-01 14:16:16 25 4
gpt4 key购买 nike

我需要使用单独的二维数组中列出的搜索和替换匹配项来搜索和替换字符串数组

--------编辑--------

最终代码:

    String[][] searchLibrary;    // calls the replaces array from the LibToArray method
searchLibrary= LibToArray();

for(int i = 0; i <searchLibrary.length; i++){
{
fileContents.set(i, fileContents.get(i).replace(searchLibrary[i][0], searchLibrary[i][1]));
}
}
for (String row : fileContents) {
System.out.println(row); // print array to cmd
}

最佳答案

好的,首先:您可以像以前那样定义您的replace(但是将名称改回oldstr和newStr——或者更好的是,oldStr以保持一致性,并带有大写的S)。无法以数字 2 开头的标识符。)然后在外面,像这样遍历您的 2D 数组:

String[][] twoDimArray;
// something that sets up twoDimArray

for (String[] row : twoDimArray)
replace (toSearchIn, row[0], row[1]);

// or, using an index:

for (int i = 0; i < twoDimArray.length; i++)
replace (toSearchIn, twoDimArray[i][0], twoDimArray[i][1]);

我不确定这是否是您想要的,因为我从描述中不清楚。如果我很接近的话,twoDimArray 是一个数组的数组(Java 没有“纯”二维数组);具体来说,它是一个未知长度的数组,其中数组的每个元素都是长度为 2 的数组。因此,twoDimArray[i] 是数组的一个元素,该元素是长度为 2 的数组,可以使用 0 或1 对其进行索引。

第二:您可能使用了错误的 contains()。为 ArrayList 和 String 定义了 contains()。您的代码使用 ArrayList 版本。对于ArrayList,如果数组的任何元素与其参数匹配,它将返回true。这看起来不对劲。如果您要单步遍历整个数组,您不想在每一步都搜索整个数组。对于字符串,如果字符串包含参数作为子字符串,则返回true。你必须这样写:

if (toSearchIn.get(i).contains(oldstr))

因为 toSearchIn.get(i) 是一个字符串。但我只是将其省略,因为如果 contains() 返回 false,replace() 无论如何都会保留字符串,这就是您想要的。

关于java - 使用另一个二维数组的索引在数组中搜索和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084970/

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