使用另一个2D数组的索引在Array中搜索和替换

时间:2013-08-06 15:56:47

标签: java arrays replace multidimensional-array

我需要使用array strings搜索并替换array使用搜索并替换单独的2D 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 } 中列出的匹配项。

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

最终守则:

{{1}}

1 个答案:

答案 0 :(得分:1)

好的,首先:您可以按照您的方式定义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()。有一个contains()为ArrayList和String定义。您的代码使用ArrayList版本。对于ArrayList,如果数组的任何元素与其参数匹配,它将返回true。这看起来不对。如果您单步执行整个数组,则不希望在每个步骤中搜索整个数组。对于String,如果字符串包含参数作为子字符串,则返回true。你必须这样写:

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

因为toSearchIn.get(i)是一个字符串。但是我只是把它留下来,因为如果contains()返回false,则replace()将只保留字符串,这就是你想要的。