我正在尝试查找用户输入的任何字符串的长度。但是,由于某种原因,.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.");
}
}
答案 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());
}