题目描述
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。
输入例子:
hello world
输出例子:
5
此题并不对输入字符串进行严格控制:
编程测试:知识补充 String的split方法支持正则表达式; 正则表达式\s表示匹配任何空白字符,+表示匹配一次或多次。 有了以上补充知识,下面的内容就很好理解了。 一、待分割字符串 待分割字符串为如下: String str = "a b c d e f g" 1 1 其中,字符串中的的空白分别为:单个空格,多个空格,tab制表符。 二、使用一个或多个空格分割字符串 正确代码如下: String [] arr = str.split("\\s+"); for(String ss : arr){ System.out.println(ss); } 1 2 3 4 1 2 3 4 作为对比,错误代码如下: String [] arr2 = str.split(" "); for(String ss : arr2){ System.out.println(ss); } 1 2 3 4 1 2 3 4 三、分割结果 使用正确代码分割结果: a b c d e f g 1 2 3 4 5 6 7 1 2 3 4 5 6 7 使用错误代码分割结果: a b c d e f g
1、正则表达式:
2、普通空格分隔package com.Main; import java.util.Scanner; public class endstringlength { /**计算字符串最后一个单词的长度,单词以空格隔开。 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //输入: //hello world //输出: //5 Scanner sc=new Scanner(System.in); String str=sc.nextLine(); String[] strarr = str.split("\\s+"); char[] strchar=strarr[strarr.length-1].toCharArray(); System.out.println(strchar.length); } }输出:5
package com.Main; import java.util.Scanner; public class endstringlength { /**计算字符串最后一个单词的长度,单词以空格隔开。 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //输入: //hello world //输出: //5 Scanner sc=new Scanner(System.in); String str=sc.nextLine(); String[] strarr = str.split(" "); char[] strchar=strarr[strarr.length-1].toCharArray(); System.out.println(strchar.length); } }
两种方法都可以实现,但是采用正则表达式适用性强。