如何获取用户输入的长度?

时间:2016-06-12 09:26:36

标签: java string

我正在尝试查找用户输入的任何字符串的长度。但是,由于某种原因,.length()方法只查找第一个单词的长度,然后停止。

因此,我决定用“_”替换所有空格,然后找到长度。由于某种原因,.length()方法仍然只能找到第一个单词的长度。我知道我可能会把字符串的每个字都放到一个数组中,然后独立地找到它们的长度,但必须有一种更有效的方法来实现它。

我看了很多其他答案。 userInput.replace( “\ S”, “”);或userInput.replace(“”,“”);对我来说根本不起作用;它产生与以前完全相同的结果。如何在不使用数组的情况下找到字符串的长度?

package com.skulr.challenge;
import com.skulr.challenge.Menu;


public class Challenge11 {

    static String userInput;
    static int count0;

    static int i = 0;

    public static void method1() {

        System.out.println("Input a message and we will\ncalculate it's length\n");
        System.out.print("- ");

        userInput = Menu.menuScanner.next();

        userInput = userInput.replace("\\s","_");
        System.out.println(userInput);
        count0 = userInput.length();


        System.out.println("Your string is: " + count0 + " characters long.");

    }

}

2 个答案:

答案 0 :(得分:1)

扫描程序用于获取字符串的令牌(由某些分隔符拆分,默认为空格)以进行处理。

如果使用nextLine()更改next()方法,则它将返回没有标记的整行。

尝试。

userInput = Menu.menuScanner.nextLine();  count0 = userInput.length();  System.out.println("你的字符串是:" + count0 +"字符长。");

OR

扫描仪sc = Menu.menuScanner.useDelimiter(" \ n"); userInput = Menu.menuScanner.next(); count0 = userInput.length(); System.out.println("你的字符串是:" + count0 +"字符长。");

答案 1 :(得分:-3)

public static void main (String[] args) throws java.lang.Exception
{
    Scanner inputStream = new Scanner(System.in);

    String userString = inputStream.nextLine();
    System.out.println(userString.length());
}