Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 值大于9的字符到int_String_Char_Type Conversion_Ascii - Fatal编程技术网

String 值大于9的字符到int

String 值大于9的字符到int,string,char,type-conversion,ascii,String,Char,Type Conversion,Ascii,我有一个用于加载某些级别的字符串数据,在完成该级别后,一些代码应该增加字符串的最后一个字符以正确加载下一个级别 例如: String levelName = "Level_002_001"; 完成该级别后,它应该创建一个字符串=“level_002_002”,该字符串与下面的代码一起工作,直到“level_002_009”,加载第10个级别时,它会出错 代码: 在人类语言中:我将字符串中的每个字符分隔成一个数组,然后取最后一个字符并将其转换为int,然后将其增加1,然后将其全部粘合在一起

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

例如:

String levelName = "Level_002_001";
完成该级别后,它应该创建一个字符串=“level_002_002”,该字符串与下面的代码一起工作,直到“level_002_009”,加载第10个级别时,它会出错

代码:

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

   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);

如果我没弄错的话,这个把戏只会持续到99年,我真的希望它有一个功能O

也许可以改为
chars[chars.Length-1]+
?也许
ManageLevelData.SaveLevel()
不喜欢10或者
Application.LoadLevel(“Level\u 002\u 00:”)
不好?我想你的答案会给ascii字符加上一个int,因为ascii字符只会变成9,我可能不得不再加一个字符。。。不,这两个函数都只是读取一个字符串,据我所知,解析方法是合法的,但感谢您的回答:)看起来您想要递增“…\u 009”并转到“…\u 010”,而不是“…\u 00:”。代码最终需要处理文本数学溢出,当它递增“…\u 009”、“…\u 999”或“Level\u 999”时。我建议解析所有可能参与
level
、increment
level
的数字,然后从整个字符串中重新生成。
   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);