我的代码的目标是询问用户输入,我的代码将搜索我的CSV文件并输出数据所在的正确行和列。但是,我对如何提取特定单元格感到非常难过,以便我可以编辑内容。
假设我搜索banana
并且我的代码搜索banana
,然后将包含banana,store
的特定行输出到变量,以便我可以编辑该位置,然后将其放入回到正确的牢房里。
以下是查找我搜索的特定文字的行和列的代码:
try{
String strSearch = searchSerialField.getText();
CSVReader reader = new CSVReader(new FileReader("test.txt"), ',');
List<String[]> myEntries = reader.readAll();
reader.close();
for (int row = 0; row < myEntries.size(); row++)
{
for (int column = 0; column < myEntries.get(row).length; column++)
{
if (myEntries.get(row)[column].trim().equalsIgnoreCase(strSearch))
{
System.out.println("Found - Your item is on row: " + row + ", column: " + column);
}
}
}
//I now need to output the contents of the row into something so I can edit it
我现在只需要将行提取成某些东西,然后我可以编辑位置,但我对于如何接近这一点我一无所知?
如果有人有任何我应该遵循的提示或方法,那将非常感激。
谢谢。
答案 0 :(得分:0)
Java Get-ChildItem -Recurse -Directory -Hidden -Filter .git | ForEach-Object { & git --git-dir="$($_.FullName)" --work-tree="$(Split-Path $_.FullName -Parent)" pull origin master }
是不可变的;你不能改变它们,你必须创造新的。另一方面,String
和数组是可变的(除非它们不是)。
你可以......
List
完成后,您可以使用for (int row = 0; row < myEntries.size(); row++)
{
for (int column = 0; column < myEntries.get(row).length; column++)
{
if (myEntries.get(row)[column].trim().equalsIgnoreCase(strSearch))
{
System.out.println("Found - Your item is on row: " + row + ", column: " + column);
String myNewString = "something else";
myEntries.get(row)[column] = myNewString; // Replaces the String at this array index
}
}
}
// Now write the contents to a CSVWriter variable called 'myCSVWriter'
for (String[] entry : myEntries) {
myCSVWriter.writeNext(entry);
}
myCSVWriter.close();
// Actually -- instead of that -- an easier way would be...
myCSVWriter.writeAll(myEntries);
myCSVWriter.close();
集合覆盖文件内容。