在Java中查找数组中的多个搜索结果

在Java中查找数组中的多个搜索结果,java,arrays,search,Java,Arrays,Search,我有一个由名字组成的数组。我有一个搜索函数,可以搜索数组中的元素,效果很好。但是,对于数组的多个元素,我无法找到如何打印返回的结果数量。例如,如果在我的例子中找到了“John”,我不知道如何证明找到了多个结果。有人请帮帮我。我需要得到“计数”来为每个结果增加1倍。这是我的密码: ` import java.util.*; 类搜索{ 公共静态void main(字符串[]args){ 扫描仪搜索=新扫描仪(System.in); String[]firstName=新字符串[]{“约翰”、“托马斯

我有一个由名字组成的数组。我有一个搜索函数,可以搜索数组中的元素,效果很好。但是,对于数组的多个元素,我无法找到如何打印返回的结果数量。例如,如果在我的例子中找到了“John”,我不知道如何证明找到了多个结果。有人请帮帮我。我需要得到“计数”来为每个结果增加1倍。这是我的密码: `

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;i
private void searchName(){
员工[]e=toEmployee();

for(int i=0;i简单、简洁,不做任何人的家庭作业!完美答案。此处相同:不要使用
==
在Java中比较字符串!简单、简洁,不做任何人的家庭作业!完美答案。她也是