【问题标题】:C# .ToString("X4") equivalent in JavaJava 中的 C# .ToString("X4") 等效项
【发布时间】:2014-05-31 04:24:16
【问题描述】:

在将 String 转换为 Unicode 时,我正在寻找一个 Java 中 C# .ToString("X4") 的真正等价物。

C# 代码:

char[] stringChars = "Notices".ToCharArray();
List<string> ucs2code = new List<string>();
foreach (char chr in stringChars)
{
    string chrCode = ((int)chr).ToString("X4");
    ucs2code.Add(chrCode);
}
string charCode = string.Join("", ucs2code);

它给了我 004E006F00740069006300650073 结果这正是我所需要的。

Java 代码我尝试过

char[] stringChars = "Notices".toCharArray();
String charCode = "";
for (char chr : stringChars) {
    String chrCode = Integer.toHexString((int)chr);
    charCode += chrCode;
}

这给了我 4e6f7469636573 它看起来正确,但不是我需要的。

有什么我错过的吗?一些建议会很有帮助。

【问题讨论】:

  • 不就是将每个chrCode 填充00 并转换为大写吗?
  • @thumbmunkeys:谢谢,没错。虽然,这可以解决问题,但被称为解决方法,而不是真正的等价物。 :-)
  • 我称之为解决方案 :)
  • 确实解决了问题,何乐而不为。

标签: c# java string unicode


【解决方案1】:

我认为没有真正的等价物。 Java 有一个Format-class,如果你想看看它。

function:Integer.toHexString((int)chr)

这是正确的方法吗,应该是这样。

【讨论】:

  • 解决方案:格式化字符串或仅连接为 "00" + String.toUpperCase() 的工作方式相同。谢谢
  • 好吧,我不是真正的 Java 专家,但很高兴看到问题得到解决。 :)
  • 我也没有,我一直在将我以前的 C#.Net 工具重新开发为 Java,遇到了几个类似这样的问题。不过很明显:-)
猜你喜欢
  • 2021-07-19
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 2010-10-15
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多