当前位置: 首页 > news >正文

华为机试 HJ1 字符串最后一个单词的长度

华为机试 HJ1 字符串最后一个单词的长度


文章目录

  • 华为机试 HJ1 字符串最后一个单词的长度
  • 一、题目描述
  • 二、方法一 Java lastIndexOf() 方法
  • 三、方法二 Java split()方法


  使用Java的lastIndexOf()和split()解决求取方法字符串最后一个单词的长度的问题


一、题目描述

  计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
  输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。

  输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。

  示例:

输入:hello nowcoder
输出:8说明:最后一个单词为nowcoder,长度为8  

二、方法一 Java lastIndexOf() 方法

  java有一个方法:public int lastIndexOf(int ch)
  它可以返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。因为单词之间以空格相隔,所以可以搜索输入字符串最后一个空格所在的索引,这样字符串总长度减去(最后空格的索引+1)即可得到字符串最后一个单词的长度。
注意
  为了获取输入的String类型的字符串,我们要使用nextLine()。这里简单介绍一下nextLine() 和 next()。
  nextLine() 方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。也就是说输入一串字符,它就可以接受所有字符包括空格,但是遇到回车Enter就会停止录入,只录入前面的东西。
  next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。也就是说如果输入了一串字符,到了有空格的时候就会停止录入,只录入空格前面的东西,空格后面的东西(包括分隔的空格都会保留在缓存区域)

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();     //str是输入的字符串System.out.println(str.length()-(str.lastIndexOf(' ')+1));    // str.lastIndexOf(' ')+1,加1是因为索引是从0开始计数的,长度是从1开始的Scanner sc = new Scanner(System.in);String str = sc.nextLine();}
}

三、方法二 Java split()方法

  split()方法可以将一个字符串按条件分割为子字符串,然后将结果作为字符串数组返回。因为单词之间以空格相隔,所以可以将字符串按照空格分隔为不同的子字符串,再用length()方法求取最后一个子字符串的长度。

public static void main(String[] args){Scanner sc = new Scanner(System.in);String str = sc.nextLine();String[] s = str.split(" ");  //将分隔的子字符串放入String数组中int length = s[s.length - 1].length();  //最后一个子字符串所在的数组位置是(s.length - 1)System.out.println(length);
}
http://www.lryc.cn/news/35915.html

相关文章:

  • 从入门到精通MongoDB数据库系列之二:深入了解MongoDB基本概念文档、集合、数据库、数据类型、MongoDB shell
  • 前端实用技巧,JS压缩、美化、JS混淆加密
  • synchronized轻量级锁优化
  • python 日期转换 日期字符相关
  • 使用sm4js进行加密和国密sm4的总结
  • c语言面试题目整理
  • 【嵌入式Bluetooth应用开发笔记】第三篇:初探BLUE ALSA应用开发
  • C++基础了解-21-C++ 继承
  • To_Heart—游记——NOI 春季测试
  • Laya小游戏开发,laya3D美术篇——1——关于laya自带的几个shader的基础运用讲解。
  • brew 的安装与使用 (Apple Silicon CPU的Mac机型完成适配)
  • 传输线的物理基础(四):传输线的特性阻抗
  • (六十九)以MySQL单表查询来举例,看看执行计划包含哪些内容(2)?
  • Linux发行版的backport
  • GitLab 存储型XSS漏洞 (CVE-2023-0050)
  • HTTPS加密流程
  • Binder通信原理与弊端解析
  • 网络使用情况监控
  • 业务流程图TFD和数据流程图DFD例题
  • react框架基础入门
  • C++ ,JNI, Java 数据传递全解(一)
  • 【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
  • Spring基础与创建
  • 虚拟机系列教程:虚拟机克隆
  • iperf3主页官方信息
  • Linux-0.11 kernel目录进程管理sched.c详解
  • AI已到,普通人的机会在哪里?
  • CSP-J2022入门组二轮补赛试题(山东)T2:宴会
  • ubuntu 使用 CMake 构建 Qt5 项目
  • ZooKeeper命令及JavaAPI操作