1
950
正常的方式是
连接可以工作,但它是非常规的,可能是一种难闻的气味,因为它表明作者不知道上述两种方法(还有什么他们可能不知道?). Java在与字符串一起使用时对+运算符有特殊支持(请参见 the documentation
在编译时。效率有点低(
回答格罗德里格斯的评论:**不,编译器 在这种情况下优化空字符串-看:
初始化StringBuilder:
追加整数:
提取最后一个字符串:
有 a proposal 以及针对JDK9正在进行的改变这种行为的工作。 |
2
251
可以接受,但我从未写过那样的东西。我更喜欢这个:
|
3
111
从int转换为string时,应使用以下命令:
|
4
59
不仅仅是优化 1个 . 我不喜欢
2个 .
或者,不是我喜欢的,但仍然比连接更好,获取对象(整数)的字符串表示:
一。 .
2。
这对使用
真实的
类似于in的连接
|
5
23
很多大学的入门课程似乎都采用这种方式,原因有二(以我的经验):
因此,它可能是出于说教的需要(尽管我认为这只是糟糕的教学)或者用来说明一个原则,否则很难在Java中演示。 |
6
16
表达
导致
字符串转换
属于
很明显,这比打电话来的性能稍差
优势
(参考文献: JLS 15.8.1 |
7
14
就我个人而言,我认为这段代码没有什么不好的地方。
至于选择
|
8
12
它也适用于其他基本类型,例如
|
9
9
这项技术是在我十多年前参加的Java课程的本科入门课程中教授的。但是,我应该注意到,IIRC,我们还没有得到String和Integer类方法。
这项技术简单,打字速度快。如果我只是打印一些东西,我会用它(例如,
就我个人而言,我更喜欢Integer.toString(),因为很明显发生了什么。String.valueOf()是我的第二个选择,因为它看起来很混乱(看看darioo回答之后的评论)。 我写了一些类来测试三种技术:“+I、Integer.to String和String.ValueOf。每次测试都将int从1转换为10000。然后我在Linux中运行每一个 time “+i技术在每个测试中都比这两个测试慢,除了一个测试,它比Integer.toString()快1毫秒,比String.valueOf()慢1毫秒(显然在String.valueOf()比Integer.toString()快的同一个测试中)。虽然它通常只慢了几毫秒,但有一个测试却慢了大约50毫秒。 YMMV . |
10
6
有多种方法可以转换为字符串:
|
11
6
|
12
5
两种方法都是正确的。 |
13
5
有多种方法可以将整数转换为字符串: (一)
2个)
三)
(四)
|
14
5
有三种方法可以转换成字符串
|
15
4
大部分是西蒙吉的。我真的不喜欢这个成语。如果您说String.valueOf(i),Java将整数转换为字符串并返回结果。如果您说“+i”,Java将创建一个StringBuilder对象,向其追加一个空字符串,将整数转换为字符串,将其追加到StringBuilder,然后将StringBuilder转换为字符串。那是很多额外的步骤。我想如果你在一个大项目中做一次,那没什么大不了的。但是如果你一直这样做,你就要让电脑做一堆额外的工作,创建所有这些额外的对象,然后必须清理。我不想狂热地追求微观优化,但我也不想毫无意义地浪费。 |
16
3
|
17
2
就我个人而言,我认为“+我看起来确实像最初的问题海报上说的“臭”。除了Java,我还使用了很多OO语言。如果该语法是合适的,那么Java只需解释i,而不需要将“”转换为字符串,并执行此操作,因为目标类型是明确的,并且右侧只提供一个值。另一个看起来像是欺骗编译器的“伎俩”,当其他制造商或其他平台生产的不同版本的Javac被考虑到需要移植代码时,这是一个糟糕的诀窍。见鬼,我的钱,它应该像许多其他工具只是采取一个类型转换:(字符串)我。 眨眼 考虑到我的学习方式和在快速阅读其他代码时理解这种结构的方便性,我投票支持Integer.toString(I)方法。忘记了Java在后台实现的方式和String.valueOf(i)这个方法对我来说是正确的,它准确地说明了正在发生的事情:我有和Integer,我希望它转换成一个字符串。 一个好的观点是,在前面使用StringBuilder可能是一个很好的解决方案,可以构建混合了文本和int或其他对象的字符串,因为这将在后台使用,对吧? 只是我的两分钱花在了已经很有钱的男人问题的答案里。。。 经过深思熟虑,编辑成我自己的答案: 好吧,好吧,我在考虑这个问题,还有String,value of(I)也很好,它说:我想要一个表示整数值的字符串。哈哈,英语比Java更难解析!但是,我留下我的回答/评论。。。我总是被教导尽可能使用方法/函数链的最低级别,并且仍然保持可读性,所以如果String.valueOf调用Integer.toString,那么如果你想剥掉它的皮,为什么要使用整个橙色,嗯? 为了澄清我对StringBuilder的评论,我构建了很多字符串,其中大部分是文本和int的组合,它们最后变得又长又难看,上面提到的例程的调用被嵌入到了+之间,所以在我看来,如果这些对象变成了SB对象,而append方法有重载,那么继续使用它可能会更干净它。。。所以我想我现在要花5美分了,嗯?大声笑。。。 |
18
-1
使用
|
19
-5
尝试简单的排版
|