2014-12-06 93 views
-2

我必須輸入一個名稱,然後將名稱變成用戶名 如果我輸入布萊恩鋼它必須給我的用戶名BSteel 我可以得到第一個字符沒有的問題,我能找到空間,但能,噸得到鋼的S於自己的,然後以小寫 字的其餘部分,請幫助從第一個和第二個名稱的單一輸入創建用戶名

代碼從OP:

Scanner un = new Scanner(System.in); // declare string 
String name; 
String firstletter; 
String secondletter; 
String restofname; //int firstChar =0; // get user input 
System.out.println("Enter the users name "); 
name = un.nextLine(); 
firstletter = name.substring(0, 1).toUpperCase(); //char fNc = name.charAt(0); 
int position = name.indexOf(" "); 
position ++; 
+0

嗨,對不起,它是在java到目前爲止我有掃描儀=新掃描儀(System.in); \t \t \t \t //聲明字符串 \t \t字符串名稱; 字符串首字母; String secondletter; String restofname; \t \t // int firstChar = 0; \t \t \t \t //獲取用戶輸入\t \t \t \t的System.out.println( 「請輸入用戶名」); \t \t name = un.nextLine(); \t \t firstletter = name.substring(0,1).toUpperCase(); \t \t \t // char fNc = name.charAt(0); \t \t \t int position = name.indexOf(「」); position ++; – 2014-12-06 14:49:32

+0

不要在評論中放置代碼。它無法格式化,很難找到混亂的地方。您需要[編輯]您的問題以在其中包含信息,併爲您正在使用的語言添加標籤。 – 2014-12-06 14:56:05

回答

-1

因爲你沒有告訴我們有關該語言的任何信息,我只會使用Java。

String input = "brian steel"; 

String[] parts = input.split(" "); 

String firstName = parts[0]; 
String lastName = parts[1]; 

String username = firstName.substring(0, 1).toUpperCase() 
       + lastName.substring(0, 1).toUpperCase() 
       + lastName.substring(1).toLowerCase(); 

當然是沒有必要的數組內容保存爲兩個獨立的變量,我這樣做是爲了明確該怎麼做。

+0

是的,它是在Java中,遺憾忘記提及。我可以輸入名字沒有問題,很容易把第一個字符大寫,但是我有問題挑出姓氏的第一個字符,然後用小寫字母填寫用戶名的其餘部分 – 2014-12-06 14:54:35

+0

我添加了最後一行,告訴你如何組合不同部分到所需的用戶名。 – Phiwa 2014-12-06 14:57:53

+0

非常感謝你,看起來非常容易。我顯示的方式使它變得更長和更難 – 2014-12-06 15:05:06

0

Scanner un = new Scanner(System.in);

// declare string 
    String name; 
      String firstletter; 
      String secondletter; 
      String restofname; 


    // get user input  
    System.out.println("Enter the users name "); 
    name = un.nextLine(); 

      firstletter = name.substring(0, 1).toUpperCase(); 


     int position = name.indexOf(" "); 
        position ++; 

這正是我需要的姓的第一個字符,利用該再拿到姓中的其餘小寫

0
using System; 
using System.Linq; 

public class Program 
{ 
    public static void Main() 
    { 
    string username = "brian steel"; 
    var lastNameInitChar = username.Split(' ').ToArray<string>(); 
    Console.Write(FirstCharUpper(lastNameInitChar[0]).First()+FirstCharUpper(lastNameInitChar[1])); 
    } 

    public static string FirstCharUpper(string input) 
    {  
     if(string.IsNullOrWhiteSpace(input)) 
      return string.Empty; 

     return input.First().ToString().ToUpper() + string.Join("",input.Skip<char>(1)); 
    } 

} 

這裏是一個解決方案: - https://dotnetfiddle.net/DxaAGH

0

試試這個:

String str = "brian steel"; 
String partString = str.substring(str.indexOf(' ') + 1);//assuming you have space in your first name and last name and its exactly two words. comment if its not the case 
String prefix = new String(new char[] {str.charAt(0), partString.charAt(0)}); 
System.out.println(prefix.toUpperCase() + partString.substring(1)); 
相關問題