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
、incrementlevel
的数字,然后从整个字符串中重新生成。
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);