【微信公众号:yi极】
题目描述:
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
方法1:
思路:
将字符串转换成字符数组,从后向前遍历,遇到第一个不是空格的就说明是最后一个“单词”,循环遍历这个“单词”并统计字符个数,当遍历到下一个为空格是说明这个“最后一个单词”结束了,即退出循环返回统计的字符个数。
class Solution {
public int lengthOfLastWord(String s) {
int sum = 0;
char [] ch = s.toCharArray();
for(int i = s.length()-1; i >= 0; i--){
if ( ch[i] != ' ' ){
while(ch[i] != ' '){
sum++;
if (i == 0){
break;
}
i--;
}
break;
}
}
return sum;
}
}
执行用时.png
方法2:字符串的split()方法
class Solution {
public int lengthOfLastWord(String s) {
String[] str = s.split(String.valueOf(' '));//按照空格符进行分割,然后返回字符串数组
return str[str.length - 1].length();//返回字符串数组最后一个元素的长度
}
}
注意:Java中split()的使用
public String[ ] split(String regex, int limit)
public String[ ] split(String regex)
其中 regex 正则表达式分隔符,limit 分割的份数。
注意: . 、 $、 | 和 * 等转义字符,必须得加 \。多个分隔符,可以用 | 作为连字符。
public class TestSplit_1 {
public static void main(String[] args) {
String str = "This is a Java string split test !";
String [] strarr = str.split(" ");
for(int i = 0;i < strarr.length;i++){
System.out.println(strarr[i]);
}
}
}
TestSplit_1.png
public class TestSplit_2 {
public static void main(String [] args){
String str = "小学|初中|高中|大学";
String [] strarr = str.split("\\|" ,3);
for(int i = 0;i < strarr.length;i++){
System.out.println(strarr[i]);
}
}
}
TestSplit_2.png
屏幕截图1.png
屏幕截图2.png