2012-10-30 36 views
-3
public static String capitalise(String str) 
{ 
    if (str != null || !"".equals(str)) 
    { 
     char chr=str.charAt(0); 
     String check= Character.toString(chr); 
     String check1= check.toUpperCase(); 
     char chr1=check1.charAt(0); 
     str.replace(chr, chr1); 
     return str;    
    } 
    else 
    { 
     System.out.println("Not a valid String"); 
    } 

    return str; 
} 
+0

試着做'return str.replace(chr,chr1);'。它應該按預期工作。 – Lion

+0

downvotes可能是因爲你沒有解釋問題/你如何輸出是不同於你的期望。 –

+0

@MatthewAdams或在'ubercooluk'編輯之前沒有正確標記代碼 –

回答

2

你的問題是你沒有從str.replace返回結果。 字符串是不可變

1

請確保爲字符串,你必須賦值

str = str.replace(chr, chr1); 
+0

但我必須大寫隻字符串的第一個字符它發生,但它取代每個字符串中的任何位置例如之前替換字符串=等待替換後它成爲AdwAit .. – Shashank

+0

你想得到隱藏的字符串等待到等待上午我對嗎? – sunleo

2

你爲什麼不直接使用:

String str = "THIS IS my TEST strinG"; 
String my_string = str.substring(0,1).toUpperCase() + str.substring(1).toLowercase(); 
0
str.replace(chr, chr1); 

返回從產生一個新的字符串用newChar替換這個字符串中的所有oldChar。 replace
但是你沒有存儲該值。所以你可以使用下面的代碼

str = str.replace(chr, chr1);