您好,我遇到了一个程序问题,该程序应该接受一个字符串,然后使用Character Wrapper类将每个单词的首字母大写。
import java.util.*;
public class wrapper
{
public static void main(String[] args)
{
Scanner input= new Scanner(System.in);
String s1;
s1=input.nextLine();
s1= s1.trim();
int howLong= s1.length();
int i;
int counter=0;
char cho;
for(counter=1; counter<= howLong+1; counter++)
{
cho=s1.charAt(counter);
if(Character.isLetter (cho) && ! Character.isLetter(s1.charAt(counter-1)))
{
System.out.print( Character.toUpperCase(cho) );
}
else
{
System.out.print(cho);
}
System.out.println();
}
}
}
到目前为止,这是程序,但是根据BlueJ编译没有错误,它不会运行。关于为什么会发生这种情况的任何帮助都会很棒。
编辑:将程序更改为我认为不会打印出char变量初始化的空格,但它仍然无法运行。也许这个循环出了问题?
答案 0 :(得分:1)
您的程序编译但未运行的原因是由于行s1=input.nextLine();
。在该行,程序正在等待来自用户的输入以用作字符串s1
,但是不显示终端以便用户提供这样的输入。解决这个问题的一种方法是强制终端在该行之前显示自己。我会建议像
System.out.println("Enter input:");
在线之前,以便终端显示自己&amp;用户可以在其中输入输入。从那里,您可以像平常一样处理该计划。