在不使用任何本机toString功能的情况下,将以下int参数转换为字符串。 public string integerToString(int integerPassedIn){ //Your code here }
在不使用任何本机toString功能的情况下,将以下int参数转换为字符串。
public string integerToString(int integerPassedIn){ //Your code here }
因为从一切继承Object和Object有ToString()方法你会如何转换的int一个string不使用本地ToString()方法?
Object
ToString()
int
string
字符串连接的问题在于它将调用ToString()该链,直到它到达一个或到达Object类为止。
如何在不使用C#的情况下将整数转换为字符串ToString()?
像这样:
public string IntToString(int a) { var chars = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; var str = string.Empty; if (a == 0) { str = chars[0]; } else if (a == int.MinValue) { str = "-2147483648"; } else { bool isNegative = (a < 0); if (isNegative) { a = -a; } while (a > 0) { str = chars[a % 10] + str; a /= 10; } if (isNegative) { str = "-" + str; } } return str; }
更新: 这是另一个较短的版本,应该会表现更好,因为它消除了所有字符串连接,而有利于操纵定长数组。它支持的最大基数为16,但是很容易将其扩展到更高的基数。可能需要进一步改进:
public string IntToString(int a, int radix) { var chars = "0123456789ABCDEF".ToCharArray(); var str = new char[32]; // maximum number of chars in any base var i = str.Length; bool isNegative = (a < 0); if (a <= 0) // handles 0 and int.MinValue special cases { str[--i] = chars[-(a % radix)]; a = -(a / radix); } while (a != 0) { str[--i] = chars[a % radix]; a /= radix; } if (isNegative) { str[--i] = '-'; } return new string(str, i, str.Length - i); }