我正在将C#代码转换为Java,我遇到了这一行(其中i
是一个int)。
sb.AppendFormat("\\u{0:X04}", i);
从我所看到的情况来看,Java在appendFormat
上没有StringBuilder
方法。
我该如何转换呢?
编辑:
我看到AppendFormat只是append和String.format的组合。我如何将\\u{0:X04}
转换为Java的String.format?
答案 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时,你会得到小写十六进制数字),这很重要。