2013-10-27 31 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

相关问题