在特定位置的字符串中插入字符

问题

我进入int,值为6位数。我希望将它显示为aString,小数点(。)位于int结束时的2位数。我想使用afloat但建议使用String以获得更好的显示输出(而不是1234.5将是1234.50)。因此,我需要一个函数,它将获取一个intas参数并返回格式正确的String,结尾处有一个小数点2位数。

说:

int j= 123456 
Integer.toString(j); 

//processing...

//output : 1234.56

#1 热门回答(174 赞)

正如评论中所提到的,aStringBuilder可能是一个更快的实现,然后使用aStringBuffer。如Java文档中所述:

此类提供与StringBuffer兼容的API,但不保证同步。此类设计用作StringBuffer的替代品,用于单个线程使用字符串缓冲区的位置(通常情况下)。在可能的情况下,建议首先使用此类优先于StringBuffer,因为在大多数实现中它会更快。

用法:

String str = Integer.toString(j);
str = new StringBuilder(str).insert(str.length()-2, ".").toString();

或者,如果你需要同步,请使用具有类似用法的StringBuffer

String str = Integer.toString(j);
str = new StringBuffer(str).insert(str.length()-2, ".").toString();

#2 热门回答(148 赞)

int j = 123456;
String x = Integer.toString(j);
x = x.substring(0, 4) + "." + x.substring(4, x.length());

#3 热门回答(15 赞)

int yourInteger = 123450;
String s = String.format("%6.2f", yourInteger / 100.0);
System.out.println(s);