char为int,值大于9

时间:2014-04-22 19:06:12

标签: string char type-conversion ascii

我有一个用于加载某些级别的字符串数据,在完成级别后,某些代码应该增加字符串的最后一个字符以正确加载下一级别。

例如:

String levelName = "Level_002_001";

完成关卡后,它应该创建一个字符串=" Level_002_002",它与下面的代码一起使用,直到" Level_002_009",并且在加载第10级时,它会产生错误

代码:

string sceneName = Application.loadedLevelName;
char[] chars = sceneName.ToCharArray();
int level = chars[chars.Length - 1] - '0';
ManageLevelData.SaveLevel(level, ScoreController.Percentage());
chars[chars.Length - 1] = (char)(((int)'0')+ level + 1);
Application.LoadLevel(new string(chars));

在人类语言中:我将字符串中的每个字符分开,然后取最后一个字符并将其转换为int,然后将其增加为1,并将它们全部粘合在一起。

1 个答案:

答案 0 :(得分:0)

   char[] chars = sceneName.ToCharArray();
   int level = chars[chars.Length - 1] - '0';
   if(level >= 9)
   {
       int previousChar = chars[chars.Length - 2] - '0';
       previousChar++;
       chars[chars.Length - 2] = (char)(((int)'0') + previousChar);
       chars[chars.Length - 1] = '0';
       Debug.Log(new string(chars));
   }
   else
      chars[chars.Length - 1] = (char)(((int)'0') + level + 1);

这个诀窍,只有在我没有错的情况下才能使用,我真的希望有一个功能。 :o