java - 在 2D Array 中搜索另一个 1D Array 的字符串,然后将它们放入一个新的 2D 中
问题描述
这个标题一定很混乱,所以让我解释一下我的问题。
我有一个按我需要的方式排序的一维数组(我们称之为“ids”)。
然后,我有另一个二维数组,其中包含位置 0 的名称和位置 1 的 id(我们称之为“名称”)。
所以名称[0][0] = 名称,名称[0][1] = id。
让我澄清一下,这两个数组的长度不同!
我想要做的是创建一个新的二维数组,它有一个名称和一个 ID,但像我的一维数组一样排序(id 的顺序与它们在那里的顺序相同)。
到目前为止我尝试过的是这个(我得到的只是一个充满空值的文本文件):
for (int i = 0; i < ids.length; i++){
String equal = ids[i];
for (int j = 0; i < users.length; i++) {
if(users[j][1].equals(equal)) {
sortedArray[i][0] = users[j][0];
sortedArray[i][1] = equal;
}
}
}
for (int i=0; i<sortedArray.length; i++){
writer.println(sortedArray[i][0]+"\t"+sortedArray[i][1]);
}
它可能没有任何用处,但由于我是通过读取文件来创建这些,所以这是我的其余代码:
BufferedReader reader;
BufferedReader reader2;
PrintWriter writer;
String[][] users = new String[39431][2];
String[] ids = new String[22890];
String[][] sortedArray = new String[22890][2];
reader = new BufferedReader(new FileReader("allConnectedUsers.txt"));
reader2 = new BufferedReader(new FileReader("ids.txt"));
String sorted = "sortedNamesWithIDs.txt";
writer = new PrintWriter(sorted, "UTF-8");
String usersline = reader.readLine();
String idsline = reader2.readLine();
for (int i = 0; i < users.length; i++) {
String splittedLine[] = usersline.split(" ");
String name = splittedLine[0];
String id = splittedLine[1];
users[i][0] = name;
users[i][1] = id;
usersline = reader.readLine();
}
for (int i = 0; i < ids.length; i++) {
String onlyIDs;
onlyIDs = idsline;
ids[i] = onlyIDs;
idsline = reader2.readLine();
}
解决方案
我实际上修复了它。这是一个非常愚蠢的错误。
在嵌套循环中,我没有检查“j”或增加它,而是 i。
对不起,这个愚蠢的错误,感谢您阅读。
推荐阅读
- python - Python中的计划函数未启动
- php - Laravel 7 迁移:语法错误或访问冲突:1068 定义了多个主键
- javascript - 如何比较由不同格式的日期字符串生成的 Javascript 日期对象?
- javascript - 如何让 elevateZoom 与两个 div 一起工作
- express - 我无法删除 monngoose 和 expressjs 中的活动集合
- visual-studio-code - Visual Studio 代码编辑器无法自动完成、颜色编码或提供建议
- php - 在 000webhost 上工作的 heroku 错误
- python - Django中views.py中的无效语法
- javascript - 更改时背景图像闪烁 - 反应
- c - C 系统调用的 Linux 64 汇编等效项是什么?