2015-10-11 56 views
0

我是C#的新手,所以这个问题(希望)会很简单。C#字符增量

我想增加字符数组中的每个字符。这是我的代码。

 //increment each character in array 
     for (int i = 0; i < text.Length; i++) 
     { 
      textArray[i]++; //this works 
      // textArray[i] +=13; //this doesn't work 
     } 

我能够增加一个数组,但不能超过这个数。

谢谢!

如果有帮助,这里是我的代码的其余部分。

 // put all text into a string - here loosely typed as a var 
     var s = System.IO.File.ReadAllText(@"C:\Users\Eliezer Feder\Documents\2 Landers\Limudie Chol\5th Semester\C#\GettysburgAddress.txt"); 

     var upper = s.ToUpper(); 

     string text = ""; //empty string to add characters to it if they are indeed characters. 
     foreach (char c in upper.ToCharArray()) 
     { 
      if (Char.IsLetter(c)) 
      { 
       text += c; 
      } 
     } 

     //change the 'text' string to an array so can increment each individual char 
     Char[] textArray = text.ToArray(); 

     //output old text in the char array: 
     Console.WriteLine(textArray); 
     Console.ReadKey(); 

     //increment each character in array 
     for (int i = 0; i < text.Length; i++) 
     { 
      textArray[i]++; //this works 
      // textArray[i] +=13; //this doesn't work 
     } 

     Console.WriteLine(textArray); 
     Console.ReadKey(); 

     //change back to string so can write to file: 
     string lines = ""; //empty string to add characters to it if they are characters. 
     foreach (char c in upper.ToCharArray()) 
     { 
      lines += textArray[c]; 
     } 


     System.IO.File.WriteAllLines(@"Eliezer Feder\Documents\2 Landers\Limudie Chol\5th Semester\C#\encrypted.txt", lines); //THIS PART IS ALSO NOT WORKING FOR SOME REASON 
+1

你是什么意思它不工作?你有例外吗?你的期望是什么? –

+0

请参阅http://www.dotnetperls.com/rot13 – nozzleman

+0

始终包含完整的错误消息(来自异常或编译器)和谷歌。副本在标题中使用它。 –

回答

2

类型的textArray元素是char。文字13类型为int。将int添加到char的结果是int,因此您无法将其分配给char变量。

你必须投字面来char,那么结果也将是一个char

textArray[i] += (char)13;