Java向字符串添加字符

Java向字符串添加字符,java,string,char,Java,String,Char,我在java程序中有两个字符串,我想以某种方式将它们混合,形成两个新字符串。为此,我必须从每个字符串中提取一些组成字符,并将它们添加到新字符串中。我有这样的代码(this.eka和this.toka是原始字符串): 我得到了.charAt(x)部分的数字,那么如何将字符转换为字符串呢 最明显的转换方法是 更好的解决方案是: String muutettu1 = toka.substring(0,2) + eka.substring(2); String muutettu2 = eka.subst

我在java程序中有两个字符串,我想以某种方式将它们混合,形成两个新字符串。为此,我必须从每个字符串中提取一些组成字符,并将它们添加到新字符串中。我有这样的代码(this.eka和this.toka是原始字符串):


我得到了.charAt(x)部分的数字,那么如何将字符转换为字符串呢

最明显的转换方法是

更好的解决方案是:

String muutettu1 = toka.substring(0,2) + eka.substring(2);
String muutettu2 = eka.substring(0,2) + toka.substring(2);
您应该为此操作创建一个方法,因为它是冗余的


字符串对象安装
new string()
是不必要的。当您将某些内容附加到空字符串时,结果将是附加的内容。

只需使用始终使用
substring()
而不是
charAt()

e、 g.当位置不是固定值,而是变量时

muutettu1 += toka.substring(x,x+1) + toka.substring(y,y+1) + eka.substring(z);
muutettu2 += eka.substring(x,x+1) + eka.substring(y,y+1) + toka.substring(z);

其中x,y,z是保存从何处提取位置的变量

这个东西可以将字符添加到字符串的末尾

StringBuilder builder = new StringBuilder();
builder
   .append(this.toka.charAt(0))
   .append(this.toka.charAt(1))
   .append(this.toka.charAt(2))
   .append(' ')  
   .append(this.eka.charAt(0))
   .append(this.eka.charAt(1))
   .append(this.eka.charAt(2));
System.out.println (builder.toString());
StringBuilder strBind = new StringBuilder("Abcd");
strBind.append('E');
System.out.println("string = " + str);
//Output => AbcdE
str.append('f');
//Output => AbcdEf

您还可以通过两种方式将整数转换为字符串表示形式:1)String.valueOf(a)和a表示整数2)integer.toString(a)

很高兴看到一些芬兰代码;-)如示例所示,还可以使用
子字符串
直接返回字符串。你为什么在同一个语句中同时使用
charAt
substring
?我认为,你的结果是错误的。子字符串(2)是以索引2开头的字符串。是的,我错过了。不管怎样,append是一个重载方法,您也可以将字符串传递给它。这里最突出的一点是不要直接使用字符串,而是使用StringBuilder(如果在旧的JRE上,则使用StringBuffer)来最小化性能成本。a+b将编译为新的StringBuilder().append(a).append(b).toString()。我非常喜欢这个答案,但为什么不为循环增加一个
?例如,
for(stringi:this.toka)
this.eka
在这两个变体上尝试javap。(我自己还没有做过,但是)迭代形式很可能会为2个控制结构形成超级分配(可能由编译器展开)。还要注意,OP的Q并不表示源字符串实际上在提供的索引处终止,因此它需要是一个显式for循环形式?
str
来自哪里?你到底在干什么?这是什么?你甚至还没有声明str是什么!
StringBuilder builder = new StringBuilder();
builder
   .append(this.toka.charAt(0))
   .append(this.toka.charAt(1))
   .append(this.toka.charAt(2))
   .append(' ')  
   .append(this.eka.charAt(0))
   .append(this.eka.charAt(1))
   .append(this.eka.charAt(2));
System.out.println (builder.toString());
StringBuilder strBind = new StringBuilder("Abcd");
strBind.append('E');
System.out.println("string = " + str);
//Output => AbcdE
str.append('f');
//Output => AbcdEf