题目描述:计算字符串最后一个单词的长度,单词之间以空格隔开(基础题)
思路一:由String的lastIndexOf的方法,直接找到最后一个空格前的字符串的长度,得到最后一个单词的长度。
package SwordOffer;
import java.util.Scanner;
/**
* Created by L_kanglin on 2017/3/13.
* 字符串最后一个单词的长度:计算字符串最后
* 一个单词的长度,单词之间以空格隔开
*/
public class Test2 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine()){
String str=sc.nextLine();
System.out.println("该字符串的长度"+ str.length());
//注意空格也占据一个位,lastIndexOf获取该空格之前的字符串的长度,包括该空格
System.out.println("前面单词的长度"+str.lastIndexOf(" "));
System.out.println("最后一个单词的长度"+(str.length()-1-str.lastIndexOf(" ")));
}
}
}
运行代码如下:
hello my world
该字符串的长度14
前面单词的长度8
最后一个单词的长度5
思路二:将字符串转化为字符数字,从后往前一次遍历该字符数组,找寻第一个空格的位置,用count计数。
package SwordOffer;
import java.util.Scanner;
/**
* Created by L_kanglin on 2017/3/13.
*/
public class Test2Change {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//用于计数
int count=0;
while(sc.hasNextLine()){
String str=sc.nextLine();
int len = str.length();
//将字符串转化为字符数组
char[] ch=str.toCharArray();
for(int i=len-1;i>=0;i--){
if (ch[i]==' ') {
break;
}
count++;
}
System.out.println(count);
}
}
}
运行结果如下:
hello world My baby
4