Java输入函数
定义输入函数
Scanner sc = new Scanner(System.in);
[建议]只使用sc.nextLine()
使用sc.nextLine()读取输入的一行字符串,然后操作字符串,使其符合我们的预期类型。
sc.nextLine()函数以enter键为结束标志,并且会处理enter键。
1.字符串的分割
String[] name=sc.nextLine().split(" ");
2.String类型转换成基本数据类型
String str="6";
byte by = Byte.valueOf(str);
System.out.println(by);
short sh = Short.valueOf(str);
System.out.println(sh);
int in = Integer.valueOf(str);
System.out.println(in);
long lo = Long.valueOf(str);
System.out.println(lo);
float fl = Float.valueOf(str);
System.out.println(fl);
double d = Double.valueOf(str);
System.out.println(d);
3.基本数据类型转换成String类型
System.out.println(String.valueOf('A'));
不使用任何sc.nextLine()
可以使用sc.next()读取输入的一个字符串,然后操作字符串,使其符合我们的预期类型。
可以使用sc.nextInt()读取输入的一个int类型数。
可以使用sc.nextFloat()读取输入的一个float类型数。
等等类似的函数。
sc.next()此类函数以空格键、table键、enter键为结束标志,并且不处理结束键。再次调用sc.next()此类函数,会自动忽略上次函数留下的结束键。但是sc.nextLine()不会忽略结束键,所以如果在sc.nextLine()之前调用过sc.next()此类函数,应该加入一个无效的sc.nextLine()作缓冲,抵消之前函数遗留的enter键。
1.举例
String name = sc.next();
int age = sc.nextInt();
float salary = sc.nextFloat();
[慎用]混合使用sc.nextLine()和sc.next()
由于sc.nextLine()和sc.next()处理结束键的方式不一样,所以要避免混合使用。
如果在sc.nextLine()之前调用过sc.next()此类函数,应该加入一个无效的sc.nextLine()作缓冲,抵消之前函数遗留的enter键。
1.举例
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
// 在next(),nextInt()等函数后,加入一个无效的nextLine()以消除之前未处理的enter键
sc.nextLine();
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名:" + name + "\n" + "年龄:" + age + "\n" + "工资:" + salary);
在线编程注意事项(需要完整写出一个类)
1.注意输入函数的使用
2.注意输出函数的使用
3.调用非静态方法之前需要创建一个类对象
示例:
牛客网编程题:迷路的牛牛
import java.util.*;
public class Main {
public String solutionLoss(int len, String str) {
Map<String, String> map = new HashMap<>();
map.put("NR", "E");
map.put("NL", "W");
map.put("WR", "N");
map.put("WL", "S");
map.put("SR", "W");
map.put("SL", "E");
map.put("ER", "S");
map.put("EL", "N");
String re = "N";
for (int i = 0; i < len; i++) {
String tmp=re + str.substring(i, i + 1);
re = map.get(tmp);
}
return re;
}
// !!!别忘记写传递参数String[] args
public static void main(String[] args) {
//定义输入函数
Scanner sc = new Scanner(System.in);
int num = Integer.valueOf(sc.nextLine());
String str = sc.nextLine();
//定义一个类对象,方便调用我们写的方法
Main m = new Main();
//定义输出函数
System.out.println(m.solutionLoss(num, str));
}
}