有人可以解释一下这个课程中的for循环吗?特别是(String person:people)
的部分import java.util.Scanner;
/**
* This program uses the startsWith method to search using
* a partial string
*
*
*/
public class PersonSearch {
public static void main(String[] args){
String lookUp; //To hold a lookup string
//Create an array of names
String[] people= {"Cutshaw, Will", "Davis, George",
"Davis, Jenny", "Russert, Phil",
"Russel, Cindy", "Setzer, Charles",
"Smathers, Holly", "Smith, Chris",
"Smith, Brad", "Williams, Jean" };
//Create a Scanner object for keyboard input
Scanner keyboard=new Scanner(System.in);
//Get a partial name to search for
System.out.println("Enter the first few characters of "+
"the last name to look up: ");
lookUp=keyboard.nextLine();
//Display all of the names that begin with the
//string entered by the user
System.out.println("Here are the names that match:");
for(String person : people){
if (person.startsWith(lookUp))
System.out.println(person);
}
}
}
谢谢。
答案 0 :(得分:7)
它被称为foreach
语法。它适用于实现Iterable
的数组和对象。
对于数组(如此处),它等同于此代码:
for (int i = 0; i < people.length; i++) {
person = people[i];
// code inside loop
}
对于Iterable<T> iterable
(例如列表),它等同于:
for (Iterator<T> i = iterable.iterator(); i.hasNext(); ) {
T next = i.next();
// code inside loop
}
这种代码模式非常普遍,并且添加的价值很小,这种缩写形式的循环正式成为1.5版本(即“Java 5”)中java语言的一部分。
答案 1 :(得分:2)
这是enhanced for loop。它自Java 5以来一直存在。
答案 2 :(得分:1)
lookUp
是一个包含用户输入的字符串变量。
假设用户输入名称“George”,它将包含名称“George”。
people
是一系列字符串,比如“Jimmy”,“George”和“John”
在For Loop
中,检查people
数组中的所有字符串,看它们是否以字符串“George”开头。
如果people
中的任何名称都以George开头,则会打印出完整的person
字符串。
打印的字符串可能包括'George Foreman'或'George Brett'
答案 3 :(得分:1)
这意味着person
中每个String
(类型people
数组中的元素)的行为如下所示。它是java中foreach的语法。
Stackoverflow上的类似问题
答案 4 :(得分:0)
该函数将对集合中的每个人进行字符串比较,以查看person字符串是否以查找字符串开头。例如,如果人是hivie7510并且查找是hivie那么它将是真实的并打印出来。
答案 5 :(得分:0)
在此示例中,for循环遍历people数组。每个实例都存储在一个名为person的变量中。如果查找存储“S”,那么person.startWith(loopup)将检查字符串人是否以S开头。因此,结果将是
塞泽尔,查尔斯
Smathers,Holly
史密斯,克里斯
史密斯,布拉德