Java-将整数转换为字符串
给定一个数字:Java-将整数转换为字符串,java,string,numbers,int,Java,String,Numbers,Int,给定一个数字: int number = 1234; 将其转换为字符串的“最佳”方式是: String stringNumber = "1234"; 我曾尝试过搜索(谷歌)来寻找答案,但似乎没有多少人是“值得信赖的”。 有多种方法: String.valueOf(number)(我的首选项) “”+number(我不知道编译器是如何处理它的,也许它和上面一样高效) Integer.toString(数字) 这样就可以了。相当值得信赖。:) 只是澄清一下,除非您正在寻找微优化,否则这是有
int number = 1234;
将其转换为字符串的“最佳”方式是:
String stringNumber = "1234";
我曾尝试过搜索(谷歌)来寻找答案,但似乎没有多少人是“值得信赖的”。
有多种方法:
(我的首选项)String.valueOf(number)
(我不知道编译器是如何处理它的,也许它和上面一样高效)“”+number
Integer.toString(数字)
- 这样就可以了。相当值得信赖。:)
只是澄清一下,除非您正在寻找微优化,否则这是有效的,可以使用。Integer类有静态方法toString()-您可以使用它:
int i = 1234;
String str = Integer.toString(i);
返回表示指定整数的字符串对象。参数转换为带符号的十进制表示形式并作为字符串返回,就像参数和基数10作为toString(int,int)方法的参数提供一样
我经常使用的一个:
Integer.parseInt("1234");
关键是,有很多方法可以做到这一点,所有方法都同样有效。至于哪一个是最佳的/最有效的,你必须询问其他人。我知道如何将整数转换为字符串的方法是使用以下代码:
Integer.toString(int);
及
如果您有一个整数i和一个字符串s,则以下内容适用:
int i;
String s = Integer.toString(i); or
String s = String.valueOf(i);
如果要将字符串“s”转换为整数“i”,则以下操作将起作用:
i = Integer.valueOf(s).intValue();
这是我用来将整数转换成字符串的方法。如果我做错了,请纠正我
/**
* @param a
* @return
*/
private String convertToString(int a) {
int c;
char m;
StringBuilder ans = new StringBuilder();
// convert the String to int
while (a > 0) {
c = a % 10;
a = a / 10;
m = (char) ('0' + c);
ans.append(m);
}
return ans.reverse().toString();
}
始终使用
String.valueOf(number)
或Integer.toString(number)
使用“+”数字是一种开销,并执行以下操作:
StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(number);
return sb.toString();
@Trufa-我会在这3个参数中使用valueOf()。@stoupa-是的,但是你可以在任何参数中使用
String.valueOf(..)
。它们实际上是一样的(最后一个调用第一个,第二个编译为第一个)。我喜欢1号one@Bozho你的最后一句话倒过来了。实际上,第一种方法调用最后一种方法。(参见JDK中的字符串源代码)int-oopsPitfall=0700;String.valueOf(oopsPitfall);非常感谢,这实际上很好,我不喜欢它,虽然(我不喜欢的不是技术性的)我只是“觉得”这是一个黑客,不是一个真正的解决方案(可能不是真的)。你的答案有很多额外的开销(相当于新的StringBuilder().append(“”).append(number).toString()@SolomonUcko我可以知道你的信息来源吗?如果答案正确,我想添加到答案中。例如:OP想要相反的结果,int->String not String->int。您可以删除答案以恢复您的声誉。ty+1。我想要这个,我想把字符串转换成整数,不管我搜索了多少次,直到我找到了这个答案,我才找到它。(1)不适用于负数[你是喜欢无符号整数的C开发人员吗?](2)依赖于截断[我们都知道假设的意思…](3)过于冗长(4)为什么?!重新发明轮子很有趣除了@Ingyher描述的问题外,它对前导零也不起作用。0123当输入变为83时,有哪些区别:Integer.toString(i)
vsString.valueOf(i)
?@lokesh我正在查看String类中的valueOf实现-。toString将在String.valueOf内调用。从某种意义上说是代理。
/**
* @param a
* @return
*/
private String convertToString(int a) {
int c;
char m;
StringBuilder ans = new StringBuilder();
// convert the String to int
while (a > 0) {
c = a % 10;
a = a / 10;
m = (char) ('0' + c);
ans.append(m);
}
return ans.reverse().toString();
}
StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(number);
return sb.toString();