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