2016-01-31 85 views
0

我已經閱讀了其他類似的問題,但他們沒有太大的幫助。 我想提示用戶輸入三個字的字符串,然後我想輸出每個單詞的第一個字符的大寫字母。如何打印用戶在Java中輸入的字符串的一個字母?

例如..

用戶輸入"Benjamin Andrew Linus"

和程序打印出"BAL"

我試過使用char name = charAt()但這不是我應該使用的。

這是我迄今爲止...

import java.util.Scanner; 

public class Initials { 
    public static void main(String[] args) { 

    Scanner in = new Scanner(System.in); 

     System.out.print("Enter your full name: "); 
     String first_name = in.next(); 
     String middle_name = in.next(); 
     String last_name = in.next(); 
    } 
} 
+0

使用'''in.nextLine() ;''' –

+0

不會使用所有三個字來創建字符串? – Rsloop99

+0

對不起,我完全忽略了一些東西。看看我更新的代碼。 –

回答

1

編寫整個代碼就沒有太大的幫助。我只是給你一個提示。

這可能是有益的:

Character.isUpperCase(first_name.charAt(<int poistion in string>)); 
+0

好的,這似乎工作,但我怎麼然後打電話打印出來呢? – Rsloop99

+0

如果'Character.isUpperCase'返回'true',那麼您將在'first_name.charAt()'中使用完全相同的int位置進行打印。如果大寫字母總是在每個單詞的開頭,那麼它應該是'charAt(0)'。如果大寫字母出現在字符串的任何位置,則必須遍歷字符串的每個字符以查找大寫字母。 – Armaiti

+0

正確,但我試過字符串初始= first_name.charAt(0),它說你不能從一個字符串更改爲字符 – Rsloop99

0

嘗試使用分體式的全名分爲三個串。

所以,你可以嘗試以下方法:

String name = in.nextLine().split(" "); 
String initial = ""; 
for(int i = 0; i < 3; i++) { 
    initials += name[0].charAt(0); 
} 
+0

我嘗試了第一個,但我得到了同樣的錯誤,當我嘗試使用charAt()像你一樣。 「 」不能從int轉換爲字符串「 我應該嘗試將它裝箱嗎? – Rsloop99

+0

Int?它應該是一個字符串,但。 https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next() –

0

使用給我的答案,這是最終爲我工作...

System.out.print("Enter your full name: "); 
    String first_name = in.next(); 
    String middle_name = in.next(); 
    String last_name = in.next(); 

    String initial1 = String.valueOf(first_name.charAt(0)).toUpperCase(); 
    String initial2 = String.valueOf(middle_name.charAt(0)).toUpperCase(); 
    String initial3 = String.valueOf(last_name.charAt(0)).toUpperCase(); 

    System.out.print(initial1 + initial2 + initial3); 
相關問題