编写一个程序,从用户那里读取一行文本。如果结果字符串包含的字符少于 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/