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));
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章