Java 洛谷 P1308 统计单词数

在这里插入图片描述

在这里插入图片描述

题目链接:https://www.luogu.com.cn/problem/P1308在这里插入图片描述
代码实例:
import java.util.Scanner;
public class Main{

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String word = scanner.nextLine();//这里同下
        String text = scanner.nextLine();//重点,如果写成scanner.next()就会错误,因为只有nextLine()可以输入像空格、回车一样的字符
        String[] datas = text.split(" ");//用分割函数将分割之后的串存到datas数组中
        int count = 0;// 计数器
        boolean flag = false;
        int location = 0;// 表示在文章中第一次出现时,单词首字母在文章中的位置
        for (int i = 0; i < datas.length; i++) {
            if (datas[i].equalsIgnoreCase(word)) {
                count++;
            } else {
                if (!flag) { // 如果已经出现了第一个单词,就不要再继续了
                    location +=  datas[i].length() + 1; // 如果遍历的单词不是,就把位置加好
                }
            }
            //判断,计算位置,想测试的话可以把下面的注释打开
            if (count == 1) {
                flag = true;
            }
        }
        if (count == 0) {
            //如果单词在文章中没有出现,则直接输出一个整数-1
            System.out.println(-1);
        } else {
            System.out.println(count + " " + location);
        }
        scanner.close();
    }
}
总结:

Scanner.next()与Scanner.nextLine()的区别
1、next()方法在遇到有效字符前所遇到的空格、tab键、enter键都不能当作结束符,next()方法会自动将其去掉,只有当next()方法遇到有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符,所以next()不能得到带有空格的字符串,只能得到部分字符串(空格前面的)。

2、nextLine()方法的结束符是Enter键,即nextLine()方法返回的是Enter键之前的所有字符串,所以nextLine()方法可以获取到带有空格的字符串。

split()函数
小编不做详细介绍了,不懂的可以去查一下
如果想了解底层原理请看链接:https://blog.csdn.net/qq_43290288/article/details/97943548

equalsIgnoreCase()和equals()的区别
String a=“ABC”;
a.equals(“abc”)为false,
a.equalsIgnoreCase(“abc”)为true;
equalsIgnoreCase与equals区别是前者不区分大小写,而后者区分

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梁同学与Android

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

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

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

打赏作者

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

抵扣说明:

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

余额充值