此代码的目的是将字符串“A Happy”更改为“A Hippy”。
String originalStr = "A Happy";
char[] charOriStr = originalStr.toCharArray();
charOriStr[3] = 'i'; //simplified code, we are supposed to loop through the String
要打印修改后的字符串,我使用:
System.out.println(charOriStr);
但推荐的解决方案如下:
String revised = new String(charOriStr);
System.out.println(revised);
我是初学者,我不确定是否应该按照推荐的解决方案作为最佳实践指南?感谢您的一些指导,谢谢。
答案 0 :(得分:3)
这里推荐的人显然是错的。由于您手中已经有char数组,因此无需再次将其转换为String,只需进行打印即可。因为您使用的println
方法会将String再次转换为内部的char数组。
答案 1 :(得分:2)
您可以使用StringBuffer
或StringBuilder
编辑相同的输入,而不是创建新输入。
public class HelloWorld
{
public static void main(String[] args)
{
StringBuilder str = new StringBuilder("A Happy");
str.setCharAt(3,'i');
System.out.println(str);
}
}
底线:查看StringBuilder
,您可以使用很多很酷的东西。
答案 2 :(得分:2)
char[]
是java 8的实现。对于可以保存世界上所有脚本的Unicode文本的字符串,包括拉丁语,阿拉伯语,希腊语,西里尔语等。
保持String的抽象级别更多...... abstract ,当然完全完成了。 如果您想用汽车中的线圈替换,您不希望将其作为零件集合收回。
例如,char
是UTF-16编码的2字节值,一种形式的Unicode。现在int
值,所谓的代码点具有更少的不规则性。所以你可以根据代码点制定解决方案,并且已经处理了中文。