2009-10-31 207 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)