HW代码理解①

牛客网习题

计算字符串最后一个单词的长度,单词以空格隔开。
输入描述:一行字符串,非空,长度小于5000。
输出描述:整数N,最后一个单词的长度。
示例1:
输入 hello world
输出 5

刚开始啥也写不出来,连输入输出都忘,写博客记录一下
参考其他人的代码,理解加记忆

package hw;
import java.util.Scanner;

public class ShowLength {

public static void main(String[] args) {		
	// TODO Auto-generated method stub
	Scanner input = new Scanner(System.in);
	System.out.print("输入一行非空字符串s,长度小于5000");   
    while(input.hasNextLine()){
        String s=input.nextLine();
        System.out.println(s.length()-1-s.lastIndexOf(" "));
    }
}

}

lastIndexOf 方法:
返回 String 对象中子字符串最后出现的位置。

s.length()-1-s.lastIndexOf(" ")
//字符串长度-1-空格出现的下标(下标从0开始)

boolean hasNextLine(): 返回输入源中是否还有下一行。
String nextLine(): 返回输入源中下一行的字符串。

while(sc.hasNext()){ //以空格为分隔符
System.out.println(“输入想要输入的内容”+sc.next());
}

while(sc.hasNextLine()){ //以回车键为分隔符
System.out.println(“这一段是我输入的内容:”+sc.nextLine());
}

标准答案

public static void main(String[] args){
	
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    String[] s = str.split(" "); //将字符串s以空格为间隔,分割为不同的字段,组成一个数组
    
    int length = s[s.length - 1].length();
                                   		//s.length-1是指数组的最后一个字段
    									//整个表达式是指最后一个数组元素的长度
    System.out.println(length);
}

你可能感兴趣的:(HW代码理解①)