有人可以看看我的代码并告诉我什么是错的?

时间:2015-09-02 05:10:12

标签: java

所以我的要求是以小写形式显示一条消息,显示你的朋友的姓名首字母(即“mf和js是朋友”)。

这是我的代码

String myFullName = "Daniel Camarena";
String friendsFullName = "John Smith";

System.out.println(   myFullName.toLowerCase().charAt(0) 
                    + myFullName.toLowerCase().charAt(7)
                    + " and " 
                    + friendsFullName.toLowerCase().charAt(0)
                    + friendsFullName.toLowerCase().charAt(5)
                    + " are friends." );  

我得到的输出是
199 and js are friends.

6 个答案:

答案 0 :(得分:3)

myFullName.toLowerCase().charAt(0) + myFullName.toLowerCase().charAt(7) 

正在处理ascii整数值,因此199

字符串添加适用于第二个名称的原因是因为它是由此形成的字符串的一部分:

                + " and " 

快速修复,在开始时添加一个空字符串

System.out.println("" +   myFullName.toLowerCase().charAt(0) 
                    + myFullName.toLowerCase().charAt(7)
                    + " and " 
                    + friendsFullName.toLowerCase().charAt(0)
                    + friendsFullName.toLowerCase().charAt(5)
                    + " are friends." );  

答案 1 :(得分:1)

   System.out.println(  "" + myFullName.toLowerCase().charAt(0)                       + myFullName.toLowerCase().charAt(7)
                + " and " 
                + friendsFullName.toLowerCase().charAt(0)
                + friendsFullName.toLowerCase().charAt(5)
                + " are friends." );  

追加空字符串以将其转换为String,然后它将开始进行concanetation。作为' +'是重载运算符它正在添加,直到它遇到String。

答案 2 :(得分:1)

您可以使用以下代码:

String myFullName = "Daniel Camarena";
    String friendsFullName = "John Smith";

    String[] arrMyFullName = myFullName.toLowerCase().split(" ");
    String[] arrFriendsFullName = friendsFullName.toLowerCase().split(" ");

    String message = "";
    for(String s : arrMyFullName)
        message += s.charAt(0);
    message += " and ";

    for(String s : arrFriendsFullName)
        message += s.charAt(0);
    message += " are friends.";

    System.out.println( message );

如果名称超过2个单词,上面的代码也可以使用。

答案 3 :(得分:0)

尝试:

    System.out.println(  "" +  myFullName.toLowerCase().charAt(0)
            + myFullName.toLowerCase().charAt(7)
            + " and "
            + friendsFullName.toLowerCase().charAt(0)
            + friendsFullName.toLowerCase().charAt(5)
            + " are friends." );

答案 4 :(得分:0)

有了这个,你可以有任何朋友的名字。而不是纠正每个名称不同的索引。

        String myFullName = "Daniel Camarena";
        String friendsFullName = "John Smith";

        String[] myNameSplit = myFullName.split(" ");
        String myFirstInitial = String.valueOf(myNameSplit[0].charAt(0));
        String myLastInitial = String.valueOf(myNameSplit[1].charAt(0));

        String[] myFriendNameSplit = friendsFullName.split(" ");
        String myFriendFirstInitial = String.valueOf(myFriendNameSplit[0].charAt(0));
        String myFriendLastInitial = String.valueOf(myFriendNameSplit[1].charAt(0));

        System.out.println(myFirstInitial+myLastInitial + " and " + myFriendFirstInitial+myFriendLastInitial+ " are friends");

答案 5 :(得分:0)

在输出中添加d和c的ASCII值以避免如下操作。

String myFullName = "Daniel Camarena";
        String friendsFullName = "John Smith";

        System.out.println(   myFullName.toLowerCase().charAt(0) 
                    +""+ myFullName.toLowerCase().charAt(7)
                    + " and " 
                    + friendsFullName.toLowerCase().charAt(0)
                    + friendsFullName.toLowerCase().charAt(5)
                    + " are friends." );