正如標題所說,我想用一個來自用戶的輸入來掃描整行輸入。輸入應該像「Eric 22 1」。在一行中掃描不同類型的變量
如果nextString()
不應該這樣使用,我應該只使用hasNext
?
Java代碼:
import java.util.Scanner;
public class tugas1
{
public static void main(String []args)
{
String name;
int age;
boolean sex;
Scanner sc = new Scanner(System.in);
System.out.println("Please input your name, age, and sex(input 1 if you are a male, or 0 if you are a female) :");
name = sc.nextString();
age = sc.nextInt();
sex = sc.nextBoolean();
if(isString(name))
{
if(isInteger(age))
{
if(isBoolean(sex))
{
System.out.println("Correct format. You are :" +name);
}
else
{
System.out.println("Please input the age in integer");
}
}
else
{
System.out.println("Please input the age in integer");
}
}
else
{
System.out.println("Please input the name in string");
}
}
}
添加和編輯行後:
System.out.println("Please input your name, age, and sex(input 1 if you are a male, or 0 if you are a female) :");
String input = sc.nextLine();
String[] inputAfterSplit = input.split(" ");
String name = inputAfterSplit[0];
int age = Integer.parseInt(inputAfterSplit[1]);
boolean sex = Boolean.parseBoolean(inputAfterSplit[2]);
我想補充的,如果(名稱的instanceof字符串)。我很久沒有碰過Java了,我忘了是使用instanceof的方式,還是錯了? 重點是我想比較,如果輸入變量是在int或字符串或布爾。
if(name instanceof String)
{
if(age instanceof Integer)
{
if(sex instanceof Boolean)
{
System.out.println("All checked out")
}
else
{
System.out.println("Not boolean")
}
else
{
System.out.println("Not int")
}
System.out.println("Not string")
}
這些線路是否工作?
這只是所謂的'下一個()','不nextString()'。 –
謝謝!所以其他nextblahblah()是正確的? nextInt(),nextBoolean()可以嗎? – KaeM
好吧,當然。該文檔位於http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html我認爲'nextBoolean'尋找'true'或'false';因爲你有'1'或'0',所以最好使用'nextInt',然後轉換它。 –