BlueJ - 我的程序编译没有错误,但没有运行

时间:2014-05-02 16:38:32

标签: java character bluej

您好,我遇到了一个程序问题,该程序应该接受一个字符串,然后使用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变量初始化的空格,但它仍然无法运行。也许这个循环出了问题?

1 个答案:

答案 0 :(得分:1)

您的程序编译但未运行的原因是由于行s1=input.nextLine();。在该行,程序正在等待来自用户的输入以用作字符串s1,但是不显示终端以便用户提供这样的输入。解决这个问题的一种方法是强制终端在该行之前显示自己。我会建议像

这样的东西

System.out.println("Enter input:");

在线之前,以便终端显示自己&amp;用户可以在其中输入输入。从那里,您可以像平常一样处理该计划。