• 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的元素,以空格分隔。

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

    解决办法:

    1. import java.util.Arrays;
    2. import java.util.Scanner;
    3. public class myScanner {
    4. Scanner sc = new Scanner(System.in);
    5. public static void main(String[] args) {
    6. System.out.println("输入:");
    7. Scanner sc = new Scanner(System.in);
    8. int m = sc.nextInt();
    9. int n = sc.nextInt();
    10. int[] num1 = new int[m];
    11. int[] num2 = new int[n];
    12. // 换成其他数据类型也一样,其他数值类型就修改int跟nextInt就可以了,
    13. //String就把nextInt()换成next()
    14. for(int i = 0; i < m; i ++) {
    15. num1[i] = sc.nextInt(); // 一个一个读取
    16. }
    17. for(int i = 0; i < n; i ++) {
    18. num2[i] = sc.nextInt();
    19. }
    20. System.out.println("输出:");
    21. System.out.println(Arrays.toString(num1));
    22. System.out.println(Arrays.toString(num2));
    23. }
    24. }

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

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

    1. // 输入如下
    2. 3 4
    3. AA bcd 123 54
    4. AA BB
    5. A B C

    解决办法:

    1. import java.util.ArrayList;
    2. import java.util.Arrays;
    3. import java.util.Scanner;
    4. public class myScanner {
    5. Scanner sc = new Scanner(System.in);
    6. public static void main(String[] args) {
    7. System.out.println("输入:");
    8. Scanner sc = new Scanner(System.in);
    9. int m = sc.nextInt();
    10. sc.nextLine(); // 很重要,跳到第二行
    11. // 若直接确定行数,注释掉上面两行,加入下面一行
    12. // int m = 3;
    13. String[] strArr = new String[m];
    14. // 从第二行开始读取
    15. for(int i = 0; i < m; i++) {
    16. strArr[i] = sc.nextLine();
    17. }
    18. System.out.println("输出:");
    19. System.out.println(Arrays.toString(strArr));
    20. ArrayList<String[]> strToOne = new ArrayList<String[]>();
    21. for(int i = 0; i < m; i ++) {
    22. String[] tmp = strArr[i].trim().split(" ");
    23. strToOne.add(tmp);
    24. }
    25. System.out.println(strToOne);
    26. // 形象点显示
    27. System.out.print("[");
    28. for(int i = 0; i < strToOne.size(); i++) {
    29. System.out.print(Arrays.toString(strToOne.get(i)));
    30. if(i != strToOne.size()-1)
    31. System.out.print(", ");
    32. }
    33. System.out.print("]");
    34. }
    35. }

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

    例如

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

    解决方案:

    1. import java.util.Scanner;
    2. public class myScanner {
    3. Scanner sc = new Scanner(System.in);
    4. public static void main(String[] args) {
    5. Scanner in = new Scanner(System.in);
    6. String c = in.nextLine();//读取一整行
    7. c = c.substring(1, c.length() - 1);//去掉两头的[]
    8. System.out.println(c);
    9. String[] ch = c.split(",");//按照,分割
    10. int a[] = new int[ch.length];//定义一个整数数组
    11. for (int i = 0; i < ch.length; i++) {
    12. System.out.print(ch[i] + " ");
    13. a[i] = Integer.valueOf(ch[i]);//将字符串型转换为数组
    14. System.out.println(a[i]);
    15. }
    16. }
    17. }

  • 相关阅读:
    JS将一个包含多种字符的数组分类
    阿桂天山的技术小结:Flask对Ztree树节点搜索定位
    C++前缀和算法应用:矩形区域不超过 K 的最大数值和
    C#开发的OpenRA游戏之世界存在的属性CombatDebugOverlay(3)
    SpringBoot中企业微信的API调用
    Stable Diffusion 如何写好提示词(Prompt)
    企业如何才能保证自身可持续发展
    5G网络建设 - 华为OD统一考试(C卷)
    Ceres曲线拟合
    全面深入了解什么是反向代理和负载均衡
  • 原文地址:https://blog.csdn.net/qq_45874683/article/details/132834244