簡體   English   中英

有人可以看看我的代碼並告訴我出了什么問題嗎?

[英]Can someone look at my code and tell me whats wrong?

所以我的要求是顯示一條消息,以小寫形式顯示您和您朋友的姓名首字母(即“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.

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." );  
   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。

您可以使用以下代碼:

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 個單詞,上面的代碼也有效。

嘗試:

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

有了這個,你可以有任何朋友的名字。 而不是更正每個名稱不同的索引。

        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");

它在輸出中添加 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." );  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM