在程序中使用charAt

时间:2017-01-12 09:27:13

标签: java

我想要做的是非常基本的。用户应输入名称,程序仅打印名称的姓名缩写,但最后一个单词除外。

例如:

input - "Mansha Mannan UL Haque"
output - "M.M.U.Haque"

程序如下,但不编译。

class joke
{
    public static void main(String str)
    {
        String alter=" "+str;
        int n=alter.length();
        for(int i=0;i<=n;i++)
        {
            char f=alter.charAt(i);
            if (f.compareTo(" ")>0)
            {
                System.out.println(alter.charAt(i+1));
            }
        }
    }
}

显示的错误是char无法解除引用。

2 个答案:

答案 0 :(得分:0)

将您的输入字符串拆分为字符串数组,然后访问每个单词并打印其第一个字符,以便将最后一个字打印出来。

class joke
{
public static void main(String[] args)
{
    Scanner sc = new Scanner(System.in);
    String alter=sc.nextLine(); //take input from user
    String arr[] = alter.split(" ");
    int n=arr.length(); //total words in user string
    for(int i=0;i<n;i++)
    {

        if(i==n-1){   //if last word
             System.out.print(arr[i]);
        }
        else{
             System.out.print(arr[i].charAt(0)+". ");
        }
    }
}

}

答案 1 :(得分:0)

这应该可以解决问题

在这种情况下name将是您的输入

  String name = "Mansha Mannan UL Haque";
    String[] nameArray = name.split(" ");
    String newName = "";
    for(int i = 0; i < nameArray.length; i++)
    {
        if(i != nameArray.length -1)
        {
            newName += nameArray[i].substring(0, 1) + ".";
        }
        else
        {
            newName += nameArray[i];
        }
    }

您还应将您的课程joke公开,并将String str更改为String[] args