当前位置: 首页 > 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);
}

相关文章:

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

华为机试 HJ1 字符串最后一个单词的长度 文章目录华为机试 HJ1 字符串最后一个单词的长度一、题目描述二、方法一 Java lastIndexOf() 方法三、方法二 Java split()方法使用Java的lastIndexOf()和split()解决求取方法字符串最后一个单词的长度的问题 一、题目描述 计算字符串最…...

从入门到精通MongoDB数据库系列之二:深入了解MongoDB基本概念文档、集合、数据库、数据类型、MongoDB shell

从入门到精通MongoDB数据库系列之二:深入了解MongoDB基本概念文档、集合、数据库、数据类型、MongoDB shell 一、MongoDB基本概念二、文档三、集合1.动态模式2.命名四、数据库五、MongoDB shell1.运行shell2.连接远程MongoDB数据库3.shell中的基本操作六、数据类型1.基本数据类…...

前端实用技巧,JS压缩、美化、JS混淆加密

作为一名前端开发者,关注JavaScript代码的安全性和隐私性,或者需要对JavaScript代码进行美化、格式化、压缩等操作,帮助你提高开发效率和代码质量,利用一个好的工具非常重要。 如果不想让自己的代码被恶意篡改和盗用,作…...

synchronized轻量级锁优化

synchronized优化轻量级锁 使用场景 如果一个对象虽然有多个线程访问,但多线程访问时间是错开的,也就是没有竞争,那么可以使用轻量级锁优化; 原理 1、每个线程的栈帧中有锁记录 包括:记录锁对象的地址Object refer…...

python 日期转换 日期字符相关

python中时间日期格式化符号: import datetime # Fri, 24 Feb 2023 22:23:18 0000 ret datetime.datetime.strptime("Fri, 24 Feb 2023 22:23:18 0000", "%a, %d %b %Y %H:%M:%S %z").strftime("%Y-%m-%d %H:%M:%S") print(ret)%y …...

使用sm4js进行加密和国密sm4的总结

最近在开发过程中,用到了sm4国密加密,因为之前没有用过,所以就想总结一下。 先说一下怎么安装使用(vue项目) 1、先安装sm4js npm i sm4js在package.json中显示sm4js的版本如下: "dependencies&quo…...

c语言面试题目整理

1、static有什么用途? 在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数 限制变量的作用域,设置变量的存储域。 static 关键字主要有两种作用: 第一,为某特定数据类型或对…...

【嵌入式Bluetooth应用开发笔记】第三篇:初探BLUE ALSA应用开发

概述 BlueALSA(Bluetooth Audio ALSA)是一种将蓝牙音频设备连接到 ALSA 音频系统的桥接程序。它提供了一个蓝牙音频设备的 ALSA 插件,允许使用 ALSA API 直接从蓝牙音频设备读取和写入音频数据,从而使得蓝牙音频设备能够以与其他 ALSA 兼容设备相同的方式工作。 BlueALSA …...

C++基础了解-21-C++ 继承

C 继承 一、C 继承 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。 当创建一个类时,不需要重新编写新的…...

To_Heart—游记——NOI 春季测试

快点投降吧! Day 1 考试了。 10min T1 ,20min 打了 T2 的暴力,发现不会就跑了、 看到 T3 一眼计算几何,不会,去看 T4。看数据范围,感觉是网络流 。大概这个时候已经 1hour 了。 然后挣扎。觉得不能最大流&#xf…...

Laya小游戏开发,laya3D美术篇——1——关于laya自带的几个shader的基础运用讲解。

最近三年,基本上做的都是laya小游戏项目。也就是微信小程序,很多业内同行都觉得laya做小游戏不好用,去用了其他平台,甚至还有些做app游戏的,都不来趟laya这个坑。原因有那么以下几点。laya对于unity的辅助开发&#xf…...

brew 的安装与使用 (Apple Silicon CPU的Mac机型完成适配)

准备 ARM版Homebrew需要安装在/opt/homebrew路径下,早期的时候需要手动创建目录执行命令,目前使用最新脚本不需要手动操作。 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"然后还需设置环境…...

传输线的物理基础(四):传输线的特性阻抗

特性阻抗和控制阻抗对于一条均匀的线,无论我们选择看哪里,我们都会看到沿线传播时相同的瞬时阻抗。有一个表征传输线的瞬时阻抗,我们给它起了一个特殊的名字:特性阻抗。有一个瞬时阻抗是均匀传输线的特征。我们将这种恒定的瞬时阻…...

(六十九)以MySQL单表查询来举例,看看执行计划包含哪些内容(2)?

今天我们继续来说执行计划里包含的数据访问方式,上次说了const和ref,以及ref_or_null,想必大家都理解了,今天来说说其他的数据访问方式 先说说range这个东西,这个东西顾名思义,其实就是你SQL里有范围查询的…...

Linux发行版的backport

遇到一个问题,简要记录如下: base on ubuntu18.06 4.15内核,这版内核不支持一款intel的集成网卡,追踪内核代码的提交历史才发现,这款网卡是从linux-4.20才开始支持的,系统自带的这个Kernel版本不支持。 如果不允许升级内核,面对这种问题,社区的做法是把新内核的特性cher…...

GitLab 存储型XSS漏洞 (CVE-2023-0050)

漏洞描述 GitLab 是由GitLab公司开发的、基于Git的集成软件开发平台。kroki是一款集成在GitLab的基于文本的图表描述自动转为图片的开源工具,在GitLab 13.7引入。 由于Kroki中lib/banzai/filter/kroki_filter.rb对接收的image_src过滤不严,具有AsciiDo…...

HTTPS加密流程

什么是HTTPSHTTPS是加密后的HTTP,相当于:HTTPS HTTP SSL/TLSHTTPS是基于"密钥"来实现的,客户端将发送的数据用密钥进行加密,服务器将收到的数据用密钥解密.对称加密和非对称加密对称加密是指:交互双方共同使用同一个密钥进行加密 或 解密.如下(图中的客户端和服务器…...

Binder通信原理与弊端解析

Binder 定义 简单来说,Binder 就是用来Client 端和 Server 端通信的。并且 Client 端和 Server 端 可以在一个进程也可以不在同一个进程,Client 可以向 Server 端发起远程调用,也可以向Server传输数据(当作函数参数来传&#xff…...

网络使用情况监控

您的网络是否经常成为网络紧张或带宽瓶颈的牺牲品?瓶颈并不一定意味着带宽不足;它们可能是由占用带宽到严重网络威胁等任何因素造成的。密切监控您的网络并分析带宽使用情况和网络流量对于找到问题的根源非常重要。NetFlow Analyzer是最先进的网络使用情…...

业务流程图TFD和数据流程图DFD例题

业务流程图(TFD)管理业务流程图(Transaction Flow Diagram,简称TFD)用来描述系统各部门、人员之间存在的业务关系、作业顺序以及管理信息流向的图表。绘制该图使用以下四种符号:例题例题1:物资订…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...