2013-10-27 30 views
0

我想找到一種方法只將字符串的特定字符轉換爲小寫。如何將字符串的單個字母轉換爲LowerCase

使用一個循環,我希望它是動態的我試過如下:

例如,在這種情況下,我想,對於任何字,我只輸入「A」字符將被投入到小寫。

  String word = new String("YehAAA"); 
     String word2 = new String(); 

     int n; 


     for (int i =0;i<word.length();i++){ 

     n = word.indexOf('A'); 
     word2 = word.substring(0,n)+'a'+word.substring(n+1); 

     } 

我有一個感覺,問題在於字符串不能改變的事實,這就是爲什麼我必須創建一個新的。然而它只能工作一次,在那之後我需要x個新的字符串。如果是這種情況,我將不得不瞭解StringBuilder,我只是想確保我的直覺是正確的,如果不是,我會感激你的意見。

回答

0
String word = new String("YehAAA"); 

//Convert string to char array. 
char[] word2 = word.toCharArray(); 


for(int i = 0;i<word2.length;i++) 
{ 
    if(word2[i] == `A') 
    { 
     word2[i] = 'a'; 
    }  
} 

//convert char array to String. 
String word3 = String.valueOf(word2); 

System.out.println(word3); 
+0

真棒,謝謝! – NaC114

0

在C#中,我可以寫這樣

static void Main(string[] args) 
     { 
      Console.Write("Enter example strings: "); 
      var input = Console.ReadLine(); 
      Console.Write("Enter character you want converted to lower case: "); 
      var charToConvert = Console.ReadKey(); 
      string result = ""; 
      foreach (char charter in input) 

      { 
       if (char.ToLower(charter) == char.ToLower(charToConvert.KeyChar)) 
        result += char.ToLower(charter); 
       else 
        result += charter; 
      } 
      Console.WriteLine("\n"); 
      Console.WriteLine(result); 
      Console.ReadLine(); 

     } 
    } 

輸出:

enter image description here

相關問題