Printf在1.5版本中被添加到Java中,但我似乎无法找到如何将输出发送到字符串而不是文件(这是sprintf在C中执行的操作).有谁知道如何做到这一点?
我有一个双倍,其价值是10,000,000.00(一千万).我必须将其转换为String.当使用该方法时,toString我得到的String
"1.0E7"在规范之后是正确的.不幸的是,我需要String"10,000,000.00"(或等效的,取决于区域设置).
怎么能实现这个?
[编辑]澄清这是一个不同的问题:我的问题是解析字符串加倍以使令牌接受它而没有这个问题的答案没有格式的Java Double to String转换符合我的标准.
我有一个以下格式的文件:
A B 10
A C 12
A D 8
B D 5
B E 2
...
Run Code Online (Sandbox Code Playgroud)
以下是将上述数据存储在arraylist中的代码.但是它只存储起始节点,终端节点,而不是成本.
List<Node1> list = new ArrayList<Node1>();
while ((line = bufferReader.readLine()) != null) {
String[] tokens = line.split(" ");
list.add(new Node1(tokens[0], tokens[1], tokens[2])); // Error at tokens[2]
}
Run Code Online (Sandbox Code Playgroud)
以下是我的Node1类
class Node1 {
String start, end;
double cost;
public Node1(String start, String end, double cost){
this.start = start;
this.end = end;
this.cost = cost;
}
public String getStartNode() { …Run Code Online (Sandbox Code Playgroud) How can I print a double in standard notation?
double h = 104857600 - 32;
System.out.println(h);
Run Code Online (Sandbox Code Playgroud)
Result:
1.04857568E8
Run Code Online (Sandbox Code Playgroud)
Desired result:
104857568
Run Code Online (Sandbox Code Playgroud)