1、输入整数、字符串数组

第一行输入n,m
第二行输入n个整数
第三行输入m个字符串


//导入包
import java.util.Scanner;
import java.util.Arrays;

public class MyScanner {

public static void main(String[] args) {

//创建对象
Scanner sc = new Scanner(System.in);
System.out.println(“输入数据:”);
//多行输入
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
String[] str = new String[m];

//int等基本数据类型的数组,用nextInt(),同行或不同都可以
for(int i=0; i arr[i] = sc.nextInt();
}
//String字符串数组, 读取用next(),以空格划分
for(int i=0; i str[i] = sc.next();
}

//调用方法进行操作
TestSc(n, m, arr);
TestStr(str);

System.out.println(“Test01 End”);

//关闭
sc.close();//提问??
}

public static void TestSc(int n, int m, int[] arr) {
System.out.println(“数据n:” + n + “, 数据m:” + m);
System.out.println(Arrays.toString(arr));//数组就是这么输出的,注意!!
}

public static void TestStr(String[] str) {
System.out.println(Arrays.toString(str));
}

}


2、输入二维数组

第一行输入n,m
第二行开始输入二维数组。


import java.util.Arrays;//数组导包
import java.util.Scanner;//输入导包

public class MyScanner2 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.println(“输入数据:”);

//二维数组
int n = sc.nextInt();
int m = sc.nextInt();
int[][] arr2 = new int[n][m];
System.out.println(“Test02 输入二维数组数据:”);

//可以直接读入
for(int i=0; i for(int j=0; j arr2[i][j] = sc.nextInt();
}
}

TestSc(n, m, arr2);
//关闭
sc.close();
}

public static void TestSc(int n, int m, int[][] arr) {
System.out.println(“数据n:” + n + “, 数据m:” + m);
for(int i=0; i System.out.println(Arrays.toString(arr[i]));
}
System.out.println(“数组行数: arr.length= “+ arr.length);
System.out.println(“数组列数: arr[0].length= “+ arr[0].length);
}

}


3、输入字符串

输入字符串,用空格隔开。
next()和nextLine()区别。


import java.util.Scanner;
/
next()读取到空白停止,在读取输入后将光标放在同一行中。
nextLine()读取到回车停止 ,在读取输入后将光标放在下一行。
/

public class MyScanner3 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.println(“输入字符串:”);

//next():只读取输入直到空格。
String str = sc.next();

//nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号
String str2 = sc.nextLine();

System.out.println(“str:” + str);
System.out.println(“str2:” + str2);

//关闭
sc.close();
}

}


4、输入字符串分割为数组

先用sc.nextLine();读入字符,再将字符串分割为字符数组或字符串数组。


import java.util.*;

public class MyScanner4 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.println(“输入字符串数组:”);

String str;
str = sc.nextLine();

char[] ch = new char[str.length()];
for(int i=0; i //用charAt();进行定位分隔
ch[i] = str.charAt(i);
System.out.println(ch[i] + “ “);
}
System.out.println(“END”);

//读入字符串后,用空格分隔为数组
String[] strs = str.split(“ “);
System.out.println(Arrays.toString(strs));

}
}


5、连续输入数字和字符串

区别于情形1,对于不能采用for循环的方式获取String。采用情形5,6用来处理。
采用while(scanner.hasNext()) 循环,实现连续输入。
格式:数字,空格,字符串。
或: 数字,回车,字符串


import java.util.Scanner;

public class MyScanner5 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while(sc.hasNext()) {
int n = sc.nextInt();
String str = sc.next();
Tes(n, str);
}

sc.close();
}

public static void Tes(int n, String str) {
System.out.println(“n = “ + n);
System.out.println(“str = “ + str);
System.out.println(“str.length = “ + str.length());
}

}


6、换行输入数字和字符串

也采用scanner.nextLine(),将光标移到下一行。再继续读入字符串。
第一行输入整数n,m,第二行开始输入字符串。或
第一行输入整数n,第二行输入m,第三行开始输入字符串。


import java.util.*;

public class MyScanner6 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();

//注意!!!光标换到下一行
sc.nextLine();

String s = sc.nextLine();
String str = sc.nextLine();

System.out.println(“n = “ + n + “ , m = “ + m);
System.out.println(“s = “ + s);
System.out.println(“str = “ + str);

sc.close();
}

}


7、换行输入数字和字符串(需要包含空格)

采用scanner.nextLine(),将光标移到下一行。再继续读入字符串。
第一行输入n,
第二行开始输入n行字符串,字符串中包含空格。


import java.util.Scanner;
public class MyScanner7 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();
String[] strs = new String[n];

sc.nextLine();

for(int i=0; i String str = sc.nextLine();
strs[i] = str;
}

Tes2(strs);
System.out.println(“End”);
sc.close();
}


public static void Tes2(String[] strs) {
for(int i=0; i String str = strs[i];
System.out.println(str);
}
}
}