LeetCode 字符串基础
题目描述
给定一个字符串 s,由若干单词组成,每个单词之间用空格隔开。返回最后一个单词的长度。 如果不存在最后一个单词,请返回 0。
示例:
输入: "Hello World" 输出: 5
知识点
- 字符串的split方法
split方法可以将一个字符串切割成多个子字符串,其基本用法为:
public String[] split(String regex)
其中,regex为要使用的定界符。
例如:
String s = "Hello World";
String[] arr = s.split(" ");
System.out.println(Arrays.toString(arr));
输出内容为:["Hello", "World"]
- 数组的取值及长度获取
对于一个已经初始化的数组,可以使用以下形式获取其某个位置的值:
arr[index]
其中,index应该是一个整数,表示数组的索引。
数组的长度可以使用以下方法获取:
arr.length
例如:
String[] arr = {"Hello", "World"};
System.out.println(arr[0]); // 输出Hello
System.out.println(arr.length); // 输出2
- 字符串读取的一些方法
对于一个字符串,可以使用以下方法获取其对应位置的字符:
s.charAt(index)
其中,index应该是一个整数,表示字符串的索引。
如果需要获取字符串的最后一个字符,我们可以使用:
s.charAt(s.length() - 1)
String s = "Hello";
System.out.println(s.charAt(0)); // 输出H
System.out.println(s.charAt(s.length() - 1)); // 输出o
实现代码
public int lengthOfLastWord(String s) {
String[] arr = s.split(" ");
if (arr.length == 0) {
return 0;
}
String lastWord = arr[arr.length - 1];
return lastWord.length();
}
完整代码实例:
public class Solution {
public int lengthOfLastWord(String s) {
String[] arr = s.split(" ");
if (arr.length == 0) {
return 0;
}
String lastWord = arr[arr.length - 1];
return lastWord.length();
}
}
综合应用
可以将该题与其他字符串操作相关的题目结合起来进行综合练习,例如:
- 翻转字符串中的单词
给定一个字符串,逐个翻转字符串中的每个单词。
示例:
输入: "the sky is blue" 输出: "blue is sky the"
实现代码:
public String reverseWords(String s) {
String[] arr = s.split(" ");
StringBuilder sb = new StringBuilder();
for (int i = arr.length - 1; i >= 0; i--) {
if (!arr[i].equals("")) {
sb.append(arr[i]).append(" ");
}
}
return sb.toString().trim();
}
- 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例:
输入: ["flower","flow","flight"] 输出: "fl"
实现代码:
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
for (int i = 0; i < strs[0].length(); i++) {
char c = strs[0].charAt(i);
for (int j = 1; j < strs.length; j++) {
if (i == strs[j].length() || strs[j].charAt(i) != c) {
return strs[0].substring(0, i);
}
}
}
return strs[0];
}
这些题目的解法都需要用到字符串的一些基本操作,因此在学习完本题后,可以结合其他相关的题目进行更深入的练习。同时,也可以进一步了解字符串在Java中的使用方法和一些常见的操作技巧,例如使用正则表达式进行字符串处理等等