题解 | #字符串最后一个单词的长度#
字符串最后一个单词的长度
https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da
解决方案
一般思路
import java.util.Scanner; public class LastWordLength { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); // 读取输入的字符串 String[] words = input.split(" "); // 将字符串分割成单词数组 System.out.println(words[words.length - 1].length()); // 输出最后一个单词的长度 } }
使用split(" ")获取空格前后的字符串(或者空串)。
进阶一:考虑到输入字符串中间有连续空格
可以将连续的空格视为一个分隔符,使用正则表达式与split()
方法:
String[] words = word.split("\\s+");
这样,连续的空白字符(空格、制表符、换行符等)都会被视为单个分隔符。
进阶二:考虑到输入字符串末尾有空格
无论末尾是单个空格还是连续空格,生成的结果数组都不会包含被这些分隔符分开的空字符串。这是因为 String.split()
方法的特定行为。当使用 split()
方法且不指定第二个参数时,Java 会移除结果数组末尾的所有空字符串。
如果要保留结果数组的空字符串,可以指定split()第二个参数为-1。
"Hello ".split(" ", -1);
进阶三:移除前后空格和空白字符
String input = sc.nextLine().trim();
算法路漫漫 文章被收录于专栏
吾将上下求索