2017-02-23 127 views
-1

我同在ASCII表中的下一个字符返回它,例如:下一个字符的每个字符添加一个字符串

string tmp = "hello"; 
string modified = "ifmmp"; 

我试图分裂字符串转换成字符,和1每个字符,但它给出了一个错误。

+0

ç你显示哪个错误你面临 – Usman

+0

提示使用toCharArray()然后http://stackoverflow.com/questions/1026220/how-to-find-out-next-character-alphabetically然后concat –

+1

当问一个问题,你应该显示我们你的代码,并准确地说明错误。因为我们绝对没办法告诉你什么是错误的,因为我们看不到你的代码。即使你告诉我们错误是什么,我们也许可以从中猜出你的代码是什么以及它出错的地方。虽然这个问题不是有用的答复(并且我们尽量不要根据请求为人们编写代码)。 – Chris

回答

3

尝试了这一点:

public string NextCharString(string str) 
{ 
    string result = ""; 
    foreach(var c in str) 
    { 
     if (c=='z') result += 'a'; 
     else if (c == 'Z') result += 'A'; 
     else result += (char)(((int)c) + 1) 
    } 
} 

编辑:我以为加一来所有的字符是循环的,即,添加一个“Z”会给出一个“A”

+0

谢谢你的队友,这正是我正在寻找的 – arstek

+0

似乎有某种字母推定你的包装中的语言写作系统。英文,也许。 –

+0

'char'可以隐式转换为'int',所以你可以通过'c + 1'去除一个额外的演员。 – TheLethalCoder

0

试试这个:

  string tmp = "hello"; 
      string modified = ""; 
      for (int i = 0; i < tmp.Length; i++) 
      { 
       char c = getNextChar(tmp[i]); 
       modified += c; 
      } 

     // 'modified' will be your desired output 

创建此方法:

 private static char getNextChar(char c) 
     { 

      // convert char to ascii 
      int ascii = (int)c; 
      // get the next ascii 
      int nextAscii = ascii + 1; 
      // convert ascii to char 
      char nextChar = (char)nextAscii; 
      return nextChar; 
     } 
+0

提到“ASCII”编码在这里有点误导。 'char'是一个UTF-16编码单元,它是Unicode字符集的几种编码之一。 –

相关问题