Java控制台输入字符串问题

℡╲_俬逩灬. 提交于 2019-12-02 23:42:42

今天遇到一个面试题,描述如下:

计算字符串最后一个单词的长度,单词以空格隔开。

其实很简单:

import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println(getLastWordLen(scan.next()));
    }
    public static int getLastWordLen(String str){
        int i = str.lastIndexOf(" ")+1;
        String lastWord = str.substring(i);
        return lastWord.length();
    }
}

but.....,测试一下发现并不对。随便输入一个“123 12”,结果应该是2,实际却输出3,百思不得姐,一度查看lastIndexOf源码,依然不明白咋回事。最后发现问题出在scan.next(),这个方法不支持控制台输入带有空格的字符串,例如输入“123 12”,实际上只能接收到“123”,空格后面的被截掉了,改成scan.nextLine(),问题解决。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!