将java中的半宽字符串转换为全宽字符串

将java中的半宽字符串转换为全宽字符串,java,Java,考虑一个半宽字符串“Hello”。我应该使用什么java库来获取其全宽等效项,即Hello'. 也欢迎使用任何示例代码。半宽和全宽字符相差65248。因此,您只需将该数字添加到每个字符中即可 流的示例: public static String toFullWidth(String halfWidth) { return halfWidth.chars() .map(c -> c + 65248) .collect( StringBuilder::new,

考虑一个半宽字符串“Hello”。我应该使用什么java库来获取其全宽等效项,即Hello'.


也欢迎使用任何示例代码。

半宽和全宽字符相差65248。因此,您只需将该数字添加到每个字符中即可

流的示例:

public static String toFullWidth(String halfWidth) {
  return halfWidth.chars()
    .map(c -> c + 65248)
    .collect(
      StringBuilder::new, 
      (builder, c) -> builder.append((char) c), 
      StringBuilder::append
    )
    .toString();
}
循环的示例:

public static String toFullWidthWithLoop(String halfWidth) {
  StringBuilder builder = new StringBuilder();
  for (char c : halfWidth.toCharArray()) {
    builder.append((char) (c + 65248));
  }
  return builder.toString();
}
试试这个:

    String s = "Hello" ;
    System.out.println(s.replaceAll(""," ")) ;

您将得到H e l o

您能提供关于半字符串和全字符串的更多详细信息吗?幻数似乎是65248:正常H的字符值为72,全宽H 具有字符值65320。因此,全宽字符似乎比普通字母高65248个。因此,一个可能的解决方案是将您的Sting转换为字符数组,然后将65248添加到所有字符值中,以便通过Stringbuilder或Stream创建您的全宽字符串。这不仅仅是在字符串之间添加空格。请参阅George Karanikas的答案以了解确切的解决方案