我正在尝试使用JAVA程序通过用户输入搜索并打印ArrayList值。
用户将输入ID(字符串),我想打印ArrayList条目或包含输入ID的条目。 ArrayList中的所有ID都是全部大写,因此我在下面的代码中使用了.toUpperCase()。
我目前只通过ID的完全匹配使ArrayList可搜索。例如,如果ID是" HOUSE"用户只能输入完整的ID" house"获取返回的ArrayList值。
我想添加部分条目的功能以返回数组列表中的值。例如,如果两个ID是" HOUSE"和"休斯顿",我希望用户能够进入" hou"并返回包含" hou。"
的两个arraylist值我是JAVA的新手,我在这里进行了相当多的研究,但我仍然无法在这里部分进入工作。我将不胜感激任何帮助。这是我为完整的ID条目放在一起的代码。
practice@practice-VirtualBox:~$ sudo service gitlab-runner status
● gitlab-runner.service - GitLab Runner
Loaded: loaded (/etc/systemd/system/gitlab-runner.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-04-24 17:41:00 SAST; 3min 0s ago
Main PID: 883 (gitlab-runner)
Tasks: 9
Memory: 24.6M
CPU: 365ms
CGroup: /system.slice/gitlab-runner.service
└─883 /usr/bin/gitlab-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --u
答案 0 :(得分:2)
使用String类中的startsWith
方法。
所以,你可以这样做(不要在找到一个条目后打破循环,因为你想打印所有可能的匹配)
for (int i = 0; i < pl.size(); i++) {
String id = pl.get(i).getId();
if (id.startsWith(nameCaps)) {
found = true;
System.out.println(pl.get(i).toString());
}
}
正如Aominè@的评论中提到的,你可以在这里使用for-each循环
for (Plant plant : pl) {
if (plant.getId().startsWith(nameCaps)) {
...
}
}