将StringBuilder#AppendFormat转换为java

时间:2015-04-28 16:56:50

标签: java c#

我正在将C#代码转换为Java,我遇到了这一行(其中i是一个int)。

sb.AppendFormat("\\u{0:X04}", i);

从我所看到的情况来看,Java在appendFormat上没有StringBuilder方法。

我该如何转换呢?

编辑:

我看到AppendFormat只是append和String.format的组合。我如何将\\u{0:X04}转换为Java的String.format?

4 个答案:

答案 0 :(得分:5)

java.util.Formatter类有zero-argument constructor自动包装StringBuilder:

Formatter formatter = new Formatter();
formatter.format("\\u%04x", i);

// ...

String finalText = formatter.toString();

// Or, if you want to be explicit about it:
//StringBuilder sb = (StringBuilder) formatter.out();
//String finalText = sb.toString();

答案 1 :(得分:2)

String.format()可能会为您完成这项工作。所以反过来说:

sb.append(String.format("\\u{0:X04}", i));

答案 2 :(得分:1)

你需要'append'和'String.format'的组合,记住要调整Java的格式说明符:

sb.append(String.format("\\u%004X", i));

答案 3 :(得分:1)

大多数答案都包含很少的错误(两个sb.append(String.format("\\u%04X", 0xfcc)); 而不是一个,C#格式留在Java代码中。

这是剪裁工作:

\\u{0:X04}

关于注释:C#说明符\\u%04X和Java说明符\uXXXX都生成格式<li><a href="example.html#section1" class="sec" name="section1">Programs</a></li> 的数字,其中X是大写十六进制数字(当你使用小x时,你会得到小写十六进制数字),这很重要。