Java - 将整数转换为字符串

Tru*_*ufa 382 java string int numbers

给出一个数字:

int number = 1234;
Run Code Online (Sandbox Code Playgroud)

这将是将其转换为字符串的"最佳"方式:

String stringNumber = "1234";
Run Code Online (Sandbox Code Playgroud)

我曾尝试搜索(谷歌搜索)一个答案,但没有多少似乎"值得信赖".

Boz*_*zho 789

有多种方式:

  • String.valueOf(number) (我的偏好)
  • "" + number (我不知道编译器如何处理它,也许它和上面一样高效)
  • Integer.toString(number)

  • @Bozho你的最后评论是后退.实际上,第一种方式是调用最后一种方式.(请参阅JDK中的字符串源代码,网址为http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/lang/String.java?av=f.) (17认同)
  • 它们实际上是相同的(最后一个调用第一个,第二个编译为第一个).我更喜欢第一个 (5认同)
  • @Trufa - 我会在这3个中使用valueOf(). (3认同)
  • int oopsPitfall = 0700; 将String.valueOf(oopsPitfall); (3认同)
  • @stoupa - 是的,但你可以在任何参数中使用`String.valueOf(..)`. (2认同)
  • 值得注意的是,第一个方法不会验证它实际上是在接收 int 还是其他一些基元/类型,因为该方法在 String 中重载。从类型检查的角度来看,“Integer.toString()”要好得多。 (2认同)
  • @jba如果在整数前添加零,它仍然被视为八进制。所以 String.valueof() 给出的实际上是正确的,而不是一个陷阱。 (2认同)
  • 我更喜欢选项 3。这似乎是最有效的方法,有编译时整数检查,而且如果我想将“整数转换为字符串”,调用“Integer.toString”听起来不错。 (2认同)

luk*_*ymo 51

Integer类有静态方法toString() - 你可以使用它:

int i = 1234;
String str = Integer.toString(i);
Run Code Online (Sandbox Code Playgroud)

返回表示指定整数的String对象.参数转换为带符号的十进制表示形式并作为字符串返回,就像参数和基数10作为toString(int,int)方法的参数一样.


All*_*ode 38

始终使用String.valueOf(number)Integer.toString(number).

使用""+数字是一种开销并执行以下操作:

StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(number);
return sb.toString();
Run Code Online (Sandbox Code Playgroud)

  • 字节码编译器无法优化它吗?我希望优化器删除 sb.append("")。但我对Java中的编译器优化了解不多。 (2认同)

Nis*_*ant 36

这样做.非常值得信赖.:)

    ""+number;
Run Code Online (Sandbox Code Playgroud)

只是为了澄清,除非您正在寻找微优化,否则这种方法可以使用并且可以使用.

  • 非常感谢,这实际上我不喜欢它(没有任何关于我不喜欢的技术)我只是"觉得"它是一个黑客,而不是一个真正的解决方案(可能不是真的). (5认同)
  • 你的答案有很多额外的开销(它相当于 new StringBuilder().append("").append(number).toString()) (2认同)

dan*_*ila 16

我知道如何将整数转换为字符串的方式是使用以下代码:

Integer.toString(int);
Run Code Online (Sandbox Code Playgroud)

String.valueOf(int);
Run Code Online (Sandbox Code Playgroud)

如果您有一个整数i和一个字符串s,则以下内容适用:

int i;
String s = Integer.toString(i); or
String s = String.valueOf(i);
Run Code Online (Sandbox Code Playgroud)

如果您想将字符串"s"转换为整数"i",那么以下内容将起作用:

i = Integer.valueOf(s).intValue();
Run Code Online (Sandbox Code Playgroud)