2009-10-31 208 views
4

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

String muutettu1 = new String(); 
String muutettu2 = new String(); 
muutettu1 += this.toka.charAt(0) + this.toka.charAt(1) + this.eka.substring(2); 
muutettu2 += this.eka.charAt(0) + this.eka.charAt(1) + this.toka.substring(2); 
System.out.println(muutettu1 + " " + muutettu2); 

我得到的数字为.charAt(x)的部分,因此如何将字符转换为字符串?

+0

很高兴看到一些芬兰语代码;-) – 2009-10-31 14:39:46

+0

正如您的示例所示,您还可以使用'substring'直接返回字符串。你在同一个陈述中使用'charAt'和'substring'的任何理由? – JRL 2009-10-31 14:39:47

回答

6

只是用经常使用的substring()代替charAt()

muutettu1 += toka.substring(0,1) + toka.substring(1,2) + eka.substring(2); 
muutettu2 += eka.substring(0,1) + eka.substring(1,2) + toka.substring(2); 

例如当位置ARENT不是固定值,而是变量做

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是保持从其中提取

7

显而易见的转换方法是Character.toString

更好的解决方案是:

String muutettu1 = toka.substring(0,2) + eka.substring(2); 
String muutettu2 = eka.substring(0,2) + toka.substring(2); 

你应该为这个操作创建一个方法,因为它是多余的。

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

+1

thx为偷我的回答 – jitter 2009-10-31 14:41:20

+0

这是简单的字符串操作,为什么要“偷”呢?你的代码做2无用的字符串分配和a.substring(0,1)+ a.substring(1,2)== toka.substring(0,2)。所以我不能偷你的东西。子串不是火箭科学。 – 2009-10-31 14:45:55

+1

Rep WAR!让我们准备开始吧。让我们准备开战吧** !! ;-) – JRL 2009-10-31 14:51:36

15
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()); 
+0

我认为,你的结果是错误的。 subString(2)是以索引2开头的字符串。 – 2009-10-31 14:58:40

+0

是的,我错过了。无论如何,append是一个重载的方法,你也可以传递它的字符串。这里的要点是不要直接使用String,而要使用StringBuilder(或者如果在较早的JRE上,则使用StringBuffer)来最大限度地降低性能成本。 – alphazero 2009-10-31 15:22:19

+0

a + b将被编译为新的StringBuilder()。无论如何,附加(a).append(b).toString()。 – 2009-10-31 15:59:41

-2

这个东西可以添加字符到的位置处的变量一个字符串的末尾

StringBuilder strBind = new StringBuilder("Abcd"); 
strBind.append('E'); 
System.out.println("string = " + str); 
//Output => AbcdE 
str.append('f'); 
//Output => AbcdEf 
+0

这是什么? 'str'从哪里来?你甚至在做什么? – frieder 2016-01-12 22:18:25

0

也可以将整数转换字符串表示有两种方法:1)将String.valueOf(a)用一个表示Integer.toString的整数2)的(a)