java牛客网输入输出

14 篇文章 0 订阅

牛客网笔试输入输出总结:
https://blog.csdn.net/weixin_43431182/article/details/108423023?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

1.对于那种只需要写一个方法的题目,只要注意方法中参数的类型和返回值类型即可

2.对于需要自己考虑输入和输出的题目,自己主要遇到过以下几种情况,并自己尝试了进行读取:

import java.util.*;
public class Main{
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		while(in.nextInt()){
		//读入一组数据
		//处理
		//输出
		}
	}
 }

while用来读入多组(一组一般为一行)数据,要读多组(行)时套上while,只用读单组则不套。

  1. 读入确定个数的一组输入(用nextInt(),读入int变量。)
    使用nextInt(),一行有几个数就用几次
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        while(in.hasNext()){
            int a=in.nextInt();
            int b=in.nextInt();
            System.out.println(a+b);
        }
    }
}
  1. 读入未知个数的一组输入(用nextLine(),读入一维数组。)
    使用nextLine(),存入String[ ], 再用int = Integer.parseInt( string )把String[ ]中每一个string转化为int
public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            //读入字符串数组
            String[] temp = sc.nextLine().split(" ");
            //字符串数组转整数数组
            int[] arr = new int[temp.length];
            for (int i = 0; i < arr.length; i++){
                arr[i] = Integer.parseInt(temp[i]);
            }
            //打印整数数组
            System.out.println(Arrays.toString(arr));
            //打印数组中的每一个元素,用逗号隔开
            for (int i: arr) {
                System.out.print(i + ",");
            }
            //下标法打印数组中的每一个元素,用逗号隔开
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + ", ");
            }
        }
    }
  1. 读入一个数据的行数N,再读入这N行数据(双层循环。用nextLine()读入每一行。读入二维数组)。我们知道每行几个数。
import java.util.Scanner;

//不套while处理一组数据:
public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int c = Integer.parseInt(sc.nextLine()); //读入N
        String[][] steps = new String[c][3]; //假设每行3个数
        for (int i = 0; i < c; i++){
            String[] temp = sc.nextLine().split(" ");
            for (int j = 0; j < 3; j++){
                steps[i][j] = temp[j];
            }
        }

    }
}

//套上while处理多组数据:
public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int c = Integer.parseInt(sc.nextLine());
            String[][] steps = new String[c][3];
            for (int i = 0; i < c; i++) {
                String[] temp = sc.nextLine().split(" ");
                for (int j = 0; j < 3; j++) {
                    steps[i][j] = temp[j];
                }
            }
            //打印二维数组
            for (int i = 0; i < steps.length; ++i){
                for (int j = 0; j < steps[0].length; ++j) {
                    System.out.print(steps[i][j] + " ");

                }
                System.out.println();
            }

        }
    }
}
//输入输出样例
input1:
1
12 3 45
output1:
12 3 45 
input2:
2
3 2 1
1 2 3
output2:
3 2 1 
1 2 3 

Integer.parseInt(s)与Integer.valueOf(s)的区别详解:
https://blog.csdn.net/u010502101/article/details/79162587

牛客网输入输出练习场:
https://ac.nowcoder.com/acm/contest/5647

Note:
排序List<>: Collections.sort(list)
排序array:Arrays.sort(arr)

因为sc.nextInt()方法只读取空白符前面的值,会把空白符继续留在缓存区,而sc.nextLine()会把空白符也读取并清除,所以每次用完sc.nextInt()方法最好在后面加个sc.nextLine(),但最好舍弃这个方法,每行都采用sc.nextLine()方法读取。【在这里两个方法混用,提交代码的时候很容易经常出现数组越界的问题】

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值