2014-03-04 83 views
-1

在Java之後相同的字符串,如果你想通過一個char或者你可以做到這一點的分割方法如下字符串分割字符串:的Java得到分裂

String[] stringWords = myString.split(" "); 

但是比方說,我現在想使用stringWords中的字符串使用它們之間的char *創建一個新的String。沒有任何解決方案可以在沒有/沒有指示的情況下使用它?

這是一個明顯的例子:

String myString = "This is how the string should be"; 

String iWant = "This*is*how*the*string*should*be"; 

有人問我更加清楚,爲什麼我不想只是使用替代()函數。我不想簡單地使用它,因爲字符串數組的內容(在我的例子中是數組stringtring)會改變它的內容。

下面是一個例子:

String myString = "This is a string i wrote" 
String[] stringWords = myString.split(" "); 

myAlgorithmFucntion(stringWords); 

這裏是如何THA最終的字符串變化的一個例子:

String iWant = "This*is*something*i*wrote*and*i*don't*want*to*do*it*anymore"; 
+6

你嘗試更換String類 – Stunner

+0

號()函數,我不想使用替換功能。因爲用我的代碼我不只是試圖取代字符串。 –

+0

這是最簡單和最好的方法。你爲什麼不想用它? – chrylis

回答

5

如果你不想使用replace或類似的,你可以使用Apache CommonsStringUtils

String iWant = StringUtils.join(stringWords, "*"); 

或者,如果你不想使用Apache下議院,然後按發表談話Rory Hunter你可以實現你自己的here

+2

我敢打賭,StringUtils將在內部也用於/指令哪些OP不想要的。基本上OP是試圖問像沒有JVM運行java程序 – Stunner

+2

@Stunner我同意'StringUtils'最有可能使用迭代。我認爲他的目的是要找出在標準或流行的Java庫中是否存在現成的/方便的方法,因此他不必重新發明輪子。 – xlm

1

是有辦法來解決,分割字符串特殊字符,如「*」, ''等你必須使用特殊的backshlas。

String myString = "This is how the string should be"; 
iWant = myString.replaceAll(" ","*"); //or iWant = StringUtils.join(Collections.asList(myString.split(" ")),"*"); 


iWant = "This*is*how*the*string*should*be"; 
String [] tab = iWant.split("\\*"); 
-2

嘗試這樣的事情,你不想使用替代()函數

char[] ans=myString.toCharArray(); 
for(int i =0; i < ans.length; i++) 
{ 
if(ans[i]==' ')ans[i]='*'; 
} 
String answer=new String(ans); 
+0

無論誰低估了上述答案,你能解釋爲什麼? – Stunner

+1

不是我是downvoter,但是這個代碼和OP聲稱他不想使用的'replace'方法是一樣的。 – Pshemo

+0

他說他不想使用內置的String類的replace()方法,但不是我自己的邏輯.. – Stunner

-2

嘗試循環的String數組:

String[] stringWords = myString.split(" "); 
    String myString = ""; 
    for (String s : stringWords){ 
    myString = myString + "s" + "*"; 
    } 

只需將邏輯添加到刪除的最後*字符串。

使用StringBuilder的選項:

String[] stringWords = myString.split(" "); 
StringBuilder myStringBuilder = new StringBuilder(""); 
for (String s : stringWords){ 
    myStringBuilder.append(s).append("*"); 
} 
+0

真的嗎?每次迭代不可變的字符串連接? – Wajahat

+0

@Wajahat是的,真的。取決於任務本身。如果您喜歡,可以使用StringBuilder。 – Averroes

+3

再加上這個問題:「有沒有解決方案可以在沒有/沒有指示的情況下執行?」 – Wajahat