我正在從一個「帳戶請求」表單(如'名字','姓','電子郵件'等)獲取參數的Java類。追加整數到用戶名結尾的最佳方式?
Java類首先從表單中獲取參數。然後初始化一個用戶名與姓和名的字符串,像這樣:
String userName = firstName.substring(0,1).toLowerCase() + lastName.toLowerCase();
例如,對於「傑克·史密斯」的用戶名是jsmith的。
之後,它會檢查數據庫中是否存在'userName'。顯然,「傑克史密斯」和「約翰史密斯」將創建相同的用戶名稱,「jsmith」。爲了解決這個問題,我只想從1開始追加數字到任何匹配的用戶名。
如何在每個衝突用戶名的末尾追加一個唯一的數字(從1開始,每增加一次衝突就增加1)?
很明顯,更優雅的解決方案是允許用戶指定他們的用戶名,但這是模擬客戶端希望完成項目的方式。
謝謝!
這完美的工作。你爲什麼認爲這是一個愚蠢的解決方案?我喜歡這種方法,因爲它取代了整個字符串,而不是每次都追加一個數字(即user4而不是user1234)。 – TimeBomb006 2012-08-10 14:08:39
哈哈!因爲如果'lastName'以數字結尾(出於某種瘋狂的原因),並且可能涉及大量字符串更改的操作應該使用另一個類如'StringBuilder'來獲得更好的性能,則它無法正常工作。 – elias 2012-08-10 14:39:36
我明白了。那麼,在這種情況下,這應該不成問題!不會有任何數字,表現也不會是一個大問題,因爲不應該有太多的衝突。謝謝。 – TimeBomb006 2012-08-10 14:58:56