气死我啦,今天这道题花了快一个小时,我学完了答案的解法,放上去在线 OJ ,一直报错,找来找去都找不到自己错在哪,明明跟答案一模一样。后来还是学了另一种解法,才跑出来的(°̥̥̥̥̥̥̥̥o°̥̥̥̥̥̥̥̥)
后来我对比了两种写法,复盘了一下,应该是第一种解法定义了太多变量了,我在使用的时候不小心用错了变量导致的。接下来还需要更细心!
一、题目
描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
示例1
输入:
hello nowcoder
输出:
8
说明:
最后一个单词为nowcoder,长度为8
二、思路解析
首先我们要做的就是循环输入,这个属于基础知识,在此不做赘述。
我们的主要目的是先找到最后一个空格,要用到的函数是: laseIndexOf ,把它 +1 就是空格后面第一个单词的第一个字母了,我们从这里开始,一直截取到末尾。
接着打印最后一个单词的长度,这个也是加上 .length( ) 即可。
总体来说,题目还是比较简单的,当然对我这种小白来说,还是写不出来。
不过没事,知行合一,需在事上练,方有所长进,一位老师曾告诫我的话,我一直铭记在心。知道错哪,比盲目努力更重要!
三、完整代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String s = sc.nextLine();
int len = s.substring(s.lastIndexOf(' ')+1, s.length()).length();
System.out.println(len);
}
sc.close();
}
}
以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!