在用Java写算法的时候如何加快读写速度

本文介绍了如何在Java中使用BufferedReader替代Scanner以提高读取大量输入的性能,并详细讲解了StringTokenizer的高效字符串分割方法,以及以回车和空格为结束符的不同处理方式。
摘要由CSDN通过智能技术生成

对于解决该方法我们一般如下操作,不需要知道为什么,有模板(个人观点)

  1. 使用BufferedReader代替Scanner:Scanner类在读取大量输入时性能较差,而BufferedReader具有更高的读取速度。可以使用BufferedReader的readLine()方法逐行读取输入数据。

  2. 使用StringTokenizer:StringTokenizer是一个用于分割字符串的工具类,相比正则表达式或者String的split()方法,它具有更高的执行效率。可以使用StringTokenizer来分割输入数据。

目录

一、读取基本数据类型

二、String类型

(1)以回车为结束符

(2)以空格为结束符


一、读取基本数据类型

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st=new StringTokenizer(br.readLine());

        int n=Integer.parseInt(st.nextToken());
        long m=Long.parseLong(st.nextToken());
        System.out.print("n="+n+" m="+m);
    }
}

二、String类型

(1)以回车为结束符

注意这个读取字符串是以回车结尾的,遇到空格也是会读进去的

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String s1=br.readLine();
        
        String s2=br.readLine();
        System.out.print("s1="+s1+" s2="+s2);
    }
}

(2)以空格为结束符

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        String s1 = st.nextToken();
        String s2 = st.nextToken();

        System.out.println("s1=" + s1 + " s2=" + s2);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

稻子永不倒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值