java字符串练习题6、最后一个单词的长度
JAVA 一个 字符串 长度 最后 单词 练习题
2023-06-13 09:16:41 时间
java字符串练习题6、最后一个单词的长度
题目:
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
测试数据:
示例 1:
输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,长度为5。 示例 2:
输入:s = " fly me to the moon " 输出:4 解释:最后一个单词是“moon”,长度为4。 示例 3:
输入:s = "luffy is still joyboy" 输出:6 解释:最后一个单词是长度为6的“joyboy”。
提示:
1 <= s.length <= 10000 s 仅有英文字母和空格 ' ' 组成 s 中至少存在一个单词
题解:
这个题的解法很多,我们先使用一个最简单的方法来解题,我们在之前的String字符串函数中学了一个函数叫做split,这个函数能将英文语句通过空格的方式都拆分出来,他并没有说最后一个结尾是否是符号,所以我们就直接当做一个单词来处理。
这里拆分后我获取到最后一个元素,直接输出长度即可,还是很方便的。相对效率还可以。
方法1:使用split
package com.item.actoin;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
sc.close();
String[] arr = s.split(" ");
System.out.println(arr[arr.length-1].length());
}
}
想到以上的方法肯定能想到这个方法,这个就是直接获取到最后一个单词来处理。
方法2:使用lastIndexOf
package com.item.actoin;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
sc.close();
String trim = s.trim();
int index = trim.lastIndexOf(" ");
System.out.println(trim.length()-index-1);
}
}
方法3:夹逼法
还是使用夹逼法,先找到最后一个单词,再根据最后一个单词的下标向左找,只要是空格就结束即可,通过结尾-起始的方式就能计算出长度了,这个效率稍微高一些。
package com.item.actoin;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
sc.close();
//直接获取下标最大值
int end = s.length() - 1;
//找到最后一个不等于空格的字符下标
while (end >= 0 && s.charAt(end) == ' ') {
end--;
}
//如果没有就算了。
if (end < 0) {
System.out.println(0);
return;
}
//从结束点是向前找起始点
int start = end;
//只要不是空格就算是单词部分
while (start >= 0 && s.charAt(start) != ' ') {
start--;
}
System.out.println(end - start);
}
}
相关文章
- java字符串的拆分_Java中的字符串分割 .
- java判断一个对象是否为空_Java中判断对象是否为空的方法的详解
- java 调用.asmx_Java调用asmx的一个例子
- java编写一个学生类和教师类,Java创建一个学生类[通俗易懂]
- java axis_Java 使用Axis实现WebService实例
- 【Java】PDFBox 一个开源的PDF支持库
- java list 转json 字符串_Java之JSON字符串与List集合之间相互转换
- Java字符串转集合_java集合转数组
- Java截取字符串方法_java通过split截取字符串
- Java 实现定时删除 一个文件夹下不是当前时间文件夹的 其他文件夹里面的数据
- java并发编程(2):Java多线程-java.util.concurrent高级工具
- Java拼接字符串时,去掉最后一个多余的逗号详解编程语言
- Oracle收购Java:瞩目引发的变革(oracle收购java)
- MacOS下Java开发环境搭建指南(macos开发java)
- Art of Illusion是一个用Java语言写成的基于GPL v2的开源三维建模和渲染软件,可以创建高质量的具有真实感的三维模型。它使用方便,可以对纹理和材料等效果进行编辑,可以产生具有真实感的图像。
- 使用Java语言写Redis实现一个分布式缓存系统(用java写个redis)