java - 从用户 java 读取一行文本

标签 java loops java.util.scanner

编写一个程序,从用户那里读取一行文本。如果结果字符串包含的字符少于 10 个,则该程序应打印“Tooshort”;否则,它应该打印字符串中的字符数

这是我到目前为止所得到的,

package exercise;

import java.util.Scanner;

public class ex6 {

    public static void main(String[] args){


        ///creates a scanner object
        Scanner input = new Scanner(System.in);

        //prompt the user to enter a line of text 
        System.out.print("Enter a line of text: " );
        String text = input.nextLine();

        //counts characters prints too short if text is less than 10 

        int counter = 0;
        for( int i=0; i < text.length(); i++ ) {
            if( text.charAt(i) == '$' ) { 
                counter++;
            }
                else if ( text.length() < 10){ 
                    System.out.println("To short"); 
            } 


            System.out.print("String Length :" );
            System.out.println(text.length());

        }
    }
}

这段代码的问题是,如果我输入 man ,它会打印出太短的三遍。下面的输出示例;

输入一行文字:man 太短 字符串长度:3 太短 字符串长度:3 太短 字符串长度:3

最佳答案

这是因为您正在循环遍历字符串的长度。因此,当输入包含 4 个字符的字符串时,您将循环条件 4 次,同时打印 4 次。

public static void main(String[] args){


        ///creates a scanner object
        Scanner input = new Scanner(System.in);

        //prompt the user to enter a line of text
        System.out.print("Enter a line of text: " );
        String text = input.nextLine();

        //counts characters prints too short if text is less than 10

        if (text.length() < 10) {
            System.out.println("Too short");
        } else {
            System.out.print("String Length :" );
            System.out.println(text.length());
        }
    }

在这种情况下您应该避免使用循环。您只想检查一次。

关于java - 从用户 java 读取一行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42328179/

相关文章:

javascript - 以编程方式从对象添加方法

java - 如何制作字符数组扫描仪?

java - 扫描到文件中

java.util.NoSuchElementException : Read words from a file

java - 读取不带标题的 POI Excel 文件

java - 从命令行覆盖 Maven 插件中的属性

java - Java(或[预期

java - 跨越tomcat和django

java - 为什么 Java VisualVM 在作为服务启动时不显示 WildFly?

C++循环展开,边界