Java面试笔试acm版输入

首先区分scanner.nextInt()//输入一个整数,只能读取一个数,空格就停止。

scanner.next()//输入字符串,只能读取一个字符串,空格就停止,但是逗号不停止。

scanner.nextLine() 读取一行,换行停止,空格不停止

1.  读取同一行的多个参数

例:输入:1,2

如果是 1 2(中间是空格的话),直接读取就行

如果是1,2 逗号间隔的话,

// 输入如下
ABB,CCC,DDD ,EEE,123,435

肯定使用nextLine,

如:


2  以三行输入为例,第一行输入两个数字m,n,分别表示数组num1和num2的长度,第二行和第三行输入num1和num2的元素,以空格分隔。

// 输入如下
3 4
10 2 3 
11 4 5 6

解决办法:

import java.util.Arrays;
import java.util.Scanner;

public class myScanner {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {
		System.out.println("输入:");
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		int n = sc.nextInt();
		int[] num1 = new int[m];
		int[] num2 = new int[n];
		// 换成其他数据类型也一样,其他数值类型就修改int跟nextInt就可以了,
		//String就把nextInt()换成next()
		for(int i = 0; i < m; i ++) {
			num1[i] = sc.nextInt();  // 一个一个读取
		}
		for(int i = 0; i < n; i ++) {
			num2[i] = sc.nextInt();
		}
		System.out.println("输出:");
		System.out.println(Arrays.toString(num1));
		System.out.println(Arrays.toString(num2));
	}
}

3.多行输入多个参数,每行参数个数不定

假设第一行输入m,n,m表示后面有m行,n表示每行最多有n个(可用来截断某一行多输入的参数,不详细分析了)。

// 输入如下
3 4
AA bcd 123 54
AA BB
A B C

解决办法:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class myScanner {
	Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {
		System.out.println("输入:");
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		sc.nextLine();  // 很重要,跳到第二行
		// 若直接确定行数,注释掉上面两行,加入下面一行
		// int m = 3;
		String[] strArr = new String[m];
		// 从第二行开始读取
		for(int i = 0; i < m; i++) {
			strArr[i] = sc.nextLine();
		}
		System.out.println("输出:");
		System.out.println(Arrays.toString(strArr));
		ArrayList<String[]> strToOne = new ArrayList<String[]>();
		for(int i = 0; i < m; i ++) {
			String[] tmp = strArr[i].trim().split(" ");
			strToOne.add(tmp);
		}
		System.out.println(strToOne);
		// 形象点显示
		System.out.print("[");
		for(int i = 0; i < strToOne.size(); i++) {
			System.out.print(Arrays.toString(strToOne.get(i)));
			if(i != strToOne.size()-1)
				System.out.print(", ");
		}
		System.out.print("]");
	}
}

4. 输入字符串型的数组,转换成整数

例如

输入: [1,2,3,4] //整体是字符串

解决方案:

import java.util.Scanner;

public class myScanner {
    Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String c = in.nextLine();//读取一整行
        c = c.substring(1, c.length() - 1);//去掉两头的[]
        System.out.println(c);
        String[] ch = c.split(",");//按照,分割
        int a[] = new int[ch.length];//定义一个整数数组
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i] + " ");
            a[i] = Integer.valueOf(ch[i]);//将字符串型转换为数组
            System.out.println(a[i]);
        }

    }
}

猜你喜欢

转载自blog.csdn.net/qq_45874683/article/details/132834244