初学Java时,我曾经遇到了许多萌新同样遇到的问题,C语言中提供输入的 scanf() 在Java是没有的,这让我困扰了一段时间,在查阅了一些资料后,学会了一点Java里的Scanner输入的方式,在这里浅浅为和我一样找不到Java里的输入方式的萌新们讲一下。
在Java中,我们可以使用Scanner 类来获取用户的输入。
Java 5中添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。相比于其他获取用户输入的方式,Scanner是非常方便的。
那么具体如何使用呢?下面介绍几种最为常用的的Scanner输入方式。
且看这一段代码:
import java.util.Scanner;public class Project {public static void main(String[] args) {Scanner sc = new Scanner(System.in); //必不可少,构建Scanner对象int a = sc.nextInt(); //读取int型输入并将其赋值给afloat b = sc.nextFloat(); //读取float型输入并将其赋值给b}
}
这里需要强调的是:如果使用Scanner,必须在代码开头引用java.util.Scanner类。如下:
import java.util.Scanner;
还有此段也是必须不可少的:
Scanner sc = new Scanner(System.in); //必不可少,构建Scanner对象
它是固定的书写模式的:Scanner 你自己起的名字 = new Scanner(System.in);
比如上面我就是使用sc作为我的Scanner输入的名字进行操作的,那么如果我想用apple作为我的Scanner输入的名字,我该如何去写呢?如下:
import java.util.Scanner;public class Project {public static void main(String[] args) {Scanner apple = new Scanner(System.in); //必不可少,构建Scanner对象int a = apple.nextInt(); //读取int型输入并将其赋值给afloat b = apple.nextFloat(); //读取float型输入并将其赋值给b}
}
只需将sc换成apple就行了,是不是很简单?嘿嘿。
————————————————分割线————————————————————————
还有一个比较重要的点:使用Scanner类输入字符串时需要注意nextLine()和next()的区别。
nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
next()会自动消去有效字符前的空格,有效字符后的空格会被作为结束符,它只返回输入的字符,不能得到带空格的字符串。
比如如下的几行代码:使用nextLine()
import java.util.Scanner;public class Project {public static void main(String[] args) {Scanner apple = new Scanner(System.in); //必不可少,构建Scanner对象String str = apple.nextLine(); //读取字符串型输入并将其赋值给strSystem.out.println(str);}
}
如果我输入:你好呀 欢迎来到Java世界!
那么它也会保留之中的空格进行输出,如下:
但是我如果使用next()
import java.util.Scanner;public class Project {public static void main(String[] args) {Scanner apple = new Scanner(System.in); //必不可少,构建Scanner对象String str = apple.next(); //读取字符串型输入并将其赋值给strSystem.out.println(str);}
}
输入:你好 欢迎来到Java世界!
那么它会将有效字符后的空格当做结束符,如下:
由于作者水平有限,就写到这里了,希望有帮助到和作者一样的萌新们。我们一起努力吧!