ACM模式小结-Java

可以通过牛客相关OJ活动进行练习,链接:https://ac.nowcoder.com/acm/contest/5652#question

方法一:Scanner

1. 输入模块:

方法1:

Scanner sc = new Scanner (new BufferedInputStream(System.in));

方法2:

Scanner sc = new Scanner (System.in);

在读入数据量大的情况下,方法1的速度会快些。

2. 判别模块

判断是否有下一个输入可以用sc.hasNext()sc.hasNextInt()sc.hasNextDouble()sc.hasNextLine()

3.读取模块

读一个整数:

int num= sc.nextInt();

读一个字符串:

String str= sc.next();

读一个浮点数:

double dou= sc.nextDouble();

读一整行:

String lin= sc.nextLine();

代码模板

import java.io.*;
import java.util.*;
 public class Main{
     public static void main(String[] args)throws Exception{
         //输入模块
          Scanner sc=new Scanner(new BufferedInputStream(System.in));
          int a=0,...;
         //判别模块
          while(sc.hasNext()){
              //读取模块
              a=sc.nextInt();
              ...
              //上面根据需求修改读取模块代码
              System.out.println(输出结果);//该处是为了防止整数整数越界设置的,可以根据需求更改输出
          }
      }

tips:

hasNext():读取下一个目标,判断它是否存在

这里括号里可以添加终止条件字符/字符串,变成 while(!sc.hasnext("终止字符串"))格式,遇到终止字符实现跳出循环

nextxxx(): 读取当前输入中的指定格式目标

方法二:BufferedReader

1.输入模块

BufferedReader bu=new BufferedReader(new InputStreamReader(System.in));

2.判别模块

遇到空输入就直接跳出读取循环(这里str声明什么的到后面模板会看到)

(str=bu.readLine())!=null

3. 读取模块

针对一行多个数据的情况下,这里首先必须添加split方法对数据进行分割。

String[] tmp=str.split("分割符");

或者

bu.readLine().split("分割符");

生成的格式是字符串数组的格式,这里就按照数组读取的格式将数组转化成自己想要的格式

基本类型 变量名=包装类.parsexxx;//这里自行查找,因为暂时没找到比较全的总结素材····

代码模板:

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException{
        
        //输入模块
        BufferedReader bu=new BufferedReader(new InputStreamReader(System.in));
        String str;
        
        //判别模块
        while((str=bu.readLine())!=null){
            
            //终止模块
            if(str.equals("终止字符串")) break;
            
            //分割模块
            String[] tmp=str.split("分割字符串");
            
            //读取模块,下面以整数数组为例
            int l=Integer.parseInt(tmp[0]);     
            System.out.println(l);
        }
    }
}

资料参考:

  1. Scanner类的next()方法与hasnext()方法最详细的用法解释
  2. ACM之Java输入输出
  3. 练习:hasNext()与Next()的不同
  4. ACM之Java输入输出
  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫夜萧晓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值