在Java中查找数组中的多个搜索结果
我有一个由名字组成的数组。我有一个搜索函数,可以搜索数组中的元素,效果很好。但是,对于数组的多个元素,我无法找到如何打印返回的结果数量。例如,如果在我的例子中找到了“John”,我不知道如何证明找到了多个结果。有人请帮帮我。我需要得到“计数”来为每个结果增加1倍。这是我的密码: `在Java中查找数组中的多个搜索结果,java,arrays,search,Java,Arrays,Search,我有一个由名字组成的数组。我有一个搜索函数,可以搜索数组中的元素,效果很好。但是,对于数组的多个元素,我无法找到如何打印返回的结果数量。例如,如果在我的例子中找到了“John”,我不知道如何证明找到了多个结果。有人请帮帮我。我需要得到“计数”来为每个结果增加1倍。这是我的密码: ` import java.util.*; 类搜索{ 公共静态void main(字符串[]args){ 扫描仪搜索=新扫描仪(System.in); String[]firstName=新字符串[]{“约翰”、“托马斯
import java.util.*;
类搜索{
公共静态void main(字符串[]args){
扫描仪搜索=新扫描仪(System.in);
String[]firstName=新字符串[]{“约翰”、“托马斯”、“塞缪尔”、“克里斯”、“丹尼尔”、“乔伊”、“大卫”、“约书亚”、“迈克尔”、“约翰”};
Arrays.sort(firstName);
System.out.print(“输入搜索词:”);
字符串名称=search.next();
int i;
布尔foundIt=false;
搜索:
对于(i=0;i
您可以将布尔值foundIt更改为int count,并在将foundIt设置为true的位置递增
比如:
int count = 0;
search:
for (i = 0; i < firstName.length; i++) {
if (firstName[i] == name) {
count++;
}
}
if (count > 0){
System.out.println("Your search term of " + name + " produced " + count + " search results");
}
else {
System.out.println("Your search term of " + name + " did not return any results");
}
int count=0;
搜索:
对于(i=0;i0){
System.out.println(“您的“+name+”搜索词生成“+count+”搜索结果”);
}
否则{
System.out.println(“您的搜索词“+name+”没有返回任何结果”);
}
您可以将布尔值foundIt更改为int count,并在将foundIt设置为true的位置递增
比如:
int count = 0;
search:
for (i = 0; i < firstName.length; i++) {
if (firstName[i] == name) {
count++;
}
}
if (count > 0){
System.out.println("Your search term of " + name + " produced " + count + " search results");
}
else {
System.out.println("Your search term of " + name + " did not return any results");
}
int count=0;
搜索:
对于(i=0;i0){
System.out.println(“您的“+name+”搜索词生成“+count+”搜索结果”);
}
否则{
System.out.println(“您的搜索词“+name+”没有返回任何结果”);
}
尝试以下代码:
Scanner search = new Scanner(System.in);
String[] firstName = {"John", "Thomas", "Samuel", "Chris", "Daniel", "Joey", "David", "Joshua", "Michael", "John"};
Arrays.sort(firstName);
System.out.print("Enter a search term: ");
String name = search.next();
int count = 0;
for (String aFirstName : firstName) {
if (aFirstName.equals(name)) {
count++;
}else if(count > 0){
break;
}
}
if(count > 0){
System.out.println("Your search term of " + name + " produced " + count + " search results");
}else{
System.out.println("Your search term of " + name + " did not return any results");
}
请尝试以下代码:
Scanner search = new Scanner(System.in);
String[] firstName = {"John", "Thomas", "Samuel", "Chris", "Daniel", "Joey", "David", "Joshua", "Michael", "John"};
Arrays.sort(firstName);
System.out.print("Enter a search term: ");
String name = search.next();
int count = 0;
for (String aFirstName : firstName) {
if (aFirstName.equals(name)) {
count++;
}else if(count > 0){
break;
}
}
if(count > 0){
System.out.println("Your search term of " + name + " produced " + count + " search results");
}else{
System.out.println("Your search term of " + name + " did not return any results");
}
您可以将结果添加到ArrayList中,这样更容易理解。此外,如果在if语句中指定变量,并对字符串使用
=
运算符,则应使用.equals()
另一件突出的事情是代码中的标签,您应该远离它们,因为它们需要使用臭名昭著的break
语句。见Dijkstra's
通过这种方式,您还可以在以后迭代找到的名称
请参见示例:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
class Search {
public static void main(String[] args) {
Scanner search = new Scanner(System.in);
String[] firstNames = new String[]{
"John",
"Thomas",
"Samuel",
"Chris",
"Daniel",
"Joey",
"David",
"Joshua",
"Michael",
"John"};
Arrays.sort(firstNames);
System.out.print("Enter a search term: ");
String name = search.next();
List<String> results = new ArrayList<String>();
for (String s : firstNames) {
if (s.equals(name)) {
results.add(s);
}
}
if (results.size() > 0) {
System.out.println("Your search term of " + name + " produced " + results.size() + " search results");
} else {
System.out.println("Your search term of " + name + " did not return any results");
}
}
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.List;
导入java.util.Scanner;
类搜索{
公共静态void main(字符串[]args){
扫描仪搜索=新扫描仪(System.in);
字符串[]名字=新字符串[]{
“约翰”,
“托马斯”,
“塞缪尔”,
“克里斯”,
“丹尼尔”,
“乔伊”,
“大卫”,
“约书亚”,
“迈克尔”,
“约翰”};
数组。排序(名字);
System.out.print(“输入搜索词:”);
字符串名称=search.next();
列表结果=新建ArrayList();
for(字符串s:名字){
如果(s.equals(name)){
结果:添加(s);
}
}
如果(results.size()>0){
System.out.println(“您的“+name+”搜索项生成“+results.size()+”搜索结果”);
}否则{
System.out.println(“您的搜索词“+name+”没有返回任何结果”);
}
}
}
您可以将结果添加到ArrayList中,这样更容易理解。此外,如果在if语句中指定变量,并对字符串使用=
运算符,则应使用.equals()
另一件突出的事情是代码中的标签,您应该远离它们,因为它们需要使用臭名昭著的break
语句。见Dijkstra's
通过这种方式,您还可以在以后迭代找到的名称
请参见示例:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
class Search {
public static void main(String[] args) {
Scanner search = new Scanner(System.in);
String[] firstNames = new String[]{
"John",
"Thomas",
"Samuel",
"Chris",
"Daniel",
"Joey",
"David",
"Joshua",
"Michael",
"John"};
Arrays.sort(firstNames);
System.out.print("Enter a search term: ");
String name = search.next();
List<String> results = new ArrayList<String>();
for (String s : firstNames) {
if (s.equals(name)) {
results.add(s);
}
}
if (results.size() > 0) {
System.out.println("Your search term of " + name + " produced " + results.size() + " search results");
} else {
System.out.println("Your search term of " + name + " did not return any results");
}
}
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.List;
导入java.util.Scanner;
类搜索{
公共静态void main(字符串[]args){
扫描仪搜索=新扫描仪(System.in);
字符串[]名字=新字符串[]{
“约翰”,
“托马斯”,
“塞缪尔”,
“克里斯”,
“丹尼尔”,
“乔伊”,
“大卫”,
“约书亚”,
“迈克尔”,
“约翰”};
数组。排序(名字);
System.out.print(“输入搜索词:”);
字符串名称=search.next();
列表结果=新建ArrayList();
for(字符串s:名字){
如果(s.equals(name)){
结果:添加(s);
}
}
如果(results.size()>0){
System.out.println(“您的“+name+”搜索项生成“+results.size()+”搜索结果”);
}否则{
System.out.println(“您的搜索词“+name+”没有返回任何结果”);
}
}
}
private void searchName(){
员工[]e=toEmployee();
对于(int i=0;iprivate void searchName(){
员工[]e=toEmployee();
for(int i=0;i简单、简洁,不做任何人的家庭作业!完美答案。此处相同:不要使用==
在Java中比较字符串!简单、简洁,不做任何人的家庭作业!完美答案。她也是