Convert int to string?
如何在C语言中将
1 | string myString = myInt.ToString(); |
1 2 3 4 5 6 7 | string s = i.ToString(); string s = Convert.ToString(i); string s = string.Format("{0}", i); string s = $"{i}"; string s ="" + i; string s = string.Empty + i; string s = new StringBuilder().Append(i).ToString(); |
以防你想用二进制表示,但你还是喝醉了昨晚的派对:
1 2 3 4 5 6 7 8 9 10 | private static string ByteToString(int value) { StringBuilder builder = new StringBuilder(sizeof(byte) * 8); BitArray[] bitArrays = BitConverter.GetBytes(value).Reverse().Select(b => new BitArray(new []{b})).ToArray(); foreach (bool bit in bitArrays.SelectMany(bitArray => bitArray.Cast<bool>().Reverse())) { builder.Append(bit ? '1' : '0'); } return builder.ToString(); } |
注意:一些关于不能很好地处理结尾的东西…
编辑:如果您不介意牺牲一些内存来提高速度,可以使用下面的命令生成一个具有预先计算的字符串值的数组:
1 2 3 4 5 6 7 8 9 10 | static void OutputIntegerStringRepresentations() { Console.WriteLine("private static string[] integerAsDecimal = new [] {"); for (int i = int.MinValue; i < int.MaxValue; i++) { Console.WriteLine("\t"{0}",", i); } Console.WriteLine("\t"{0}"", int.MaxValue); Console.WriteLine("}"); } |
1 2 | int num = 10; string str = Convert.ToString(num); |
任何对象的ToString方法都应该返回该对象的字符串表示形式。
1 2 3 | int var1 = 2; string var2 = var1.ToString(); |
关于@xavier的回答,这里有一个页面,它可以加速几种不同方法之间的比较,以完成从100次迭代到21474836次迭代的转换。
这在很大程度上是一种联系:
1 2 3 4 | int someInt = 0; someInt.ToString(); //this was fastest half the time //and Convert.ToString(someInt); //this was the fastest the other half the time |
1 | string str = intVar.ToString(); |
在某些情况下,您不必使用
1 | string str ="hi" + intVar; |
或:
1 | string s = Convert.ToString(num); |
没有一个答案提到
1 | Debug.Assert((1000*1000).ToString()=="1000000"); |
偶数到整数字面值
1 | Debug.Assert(256.ToString("X")=="100"); |
虽然像这样的整型文字经常被认为是糟糕的编码风格(幻数),但在某些情况下,这种功能可能会很有用…
1 2 3 4 |
字符串S="+2;
你可以做一些好事,比如:字符串S=2+2+"你"就是"4你"