2015-09-02 212 views
1

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

+0

您的問題標題應描述您的具體問題/問題。 – Zarwan

回答

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
System.out.println( "" + myFullName.toLowerCase().charAt(0)      + myFullName.toLowerCase().charAt(7) 
       + " and " 
       + friendsFullName.toLowerCase().charAt(0) 
       + friendsFullName.toLowerCase().charAt(5) 
       + " are friends."); 

追加空字符串將其轉換爲字符串,然後它會開始做concanetation。由於'+'是重載操作符,它會一直添加,直到遇到String。

0

嘗試:

System.out.println( "" + myFullName.toLowerCase().charAt(0) 
      + myFullName.toLowerCase().charAt(7) 
      + " and " 
      + friendsFullName.toLowerCase().charAt(0) 
      + friendsFullName.toLowerCase().charAt(5) 
      + " are friends."); 
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個字。

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"); 
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."); 
相關問題