【算法每日一练及解题思路】计算以空格隔开的字符串的最后一个单词的长度
【算法每日一练及解题思路】计算以空格隔开的字符串的最后一个单词的长度
一、题目:计算以空格隔开的字符串的最后一个单词的长度
二、举例:
输入:hello nowcoder
输出:8
说明:最后一个单词为nowcoder,长度为8
三、思路:
解题思路1:逐个字符读取字符串的内容,当读取到空格字符时计数归零,从空格后开始统计字符个数,统计到遇到换行符结束
解题思路2:将整个字符串按空格分割成字符串数组,打印出数组最后一个字符串元素的长度
四、总结:
可以从每个字符入手,也可从整个字符串入手。
五、代码
import java.io.IOException;
import java.util.Scanner;
/*
描述:计算以空格隔开的字符串的最后一个单词的长度,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:输出一个整数,表示输入字符串最后一个单词的长度。
示例1
输入:hello nowcoder
输出:8
说明:最后一个单词为nowcoder,长度为8
*/
public class CalcLastWordLen {
public static void main(String[] args) throws Exception {
try(Scanner scanner = new Scanner(System.in);){
String str = "" ;
while(!str.equals("end")){
str = scanner.nextLine();
System.out.println(calcLastWordLen1(str)+":"+calcLastWordLen2(str));
}
}
}
/*逐个字符读取字符串的内容,当读取到空格字符时计数归零,从空格后开始统计字符个数,统计到遇到换行符结束*/
public static int calcLastWordLen1(String str) throws IOException{
int count = 0;
char[] charArray = str.toCharArray();
for(char c:charArray){
if(c == ' '){ count = 0; }else{ count++; }
}
return count;
}
/*将整个字符串按空格分割成字符串数组,打印出数组组后一个字符串元素的长度*/
public static int calcLastWordLen2(String str) throws IOException{
if(!str.isEmpty()){//读取到空行则结束
String[] strArray = str.split(" ");
return strArray[strArray.length-1].length();
}
return 0;
}
}