2014-07-13 23 views
1

我在我的程序中創建了一個數組列表,我希望能夠更改。爲了做到這一點,我試圖使用ArrayListName.set(i,'!'),但問題是我希望它只替換字符和NOT空格。字符ArrayList,只替換字符

我該如何去做到這一點?謝謝!

import java.util.ArrayList; 

public class Test { 

public static void main(String[] args){ 

    String words = new String("HELLO GOODBYE!"); 
    ArrayList<Character> sample = new ArrayList<Character>(); 

    for(int i = 0; i < words.length(); i++) 
     sample.add(words.charAt(i)); 

    for(int i = 0; i < sample.size(); i++) 
     sample.set(i,'!'); 

} 

樣本輸出(我想)是從一個變化: HELLO GOODBYE! 至: !!!!! !!!!!!!!

+0

哦,對不起,我忘了寫出來,我將它添加到@Unihedron – user3806226

+0

是否想要替換所有不是空間的字符?或者你只想替換大寫和小寫字符? HELLO G ** DBYE!改成: !!!!! !** !!!!! ? – Darwyn

+0

我想我想讓任何不是空間的角色都有能力被替換@Darwyn – user3806226

回答

1

從字符串類的Java API:

在你的循環:

if (charAt(i) != ' ' //space)) { 
sample.set(i,'!'); 
} 

欲瞭解更多信息,請閱讀Java API來String

+0

爲什麼不使用'charAt(i)!='''? –

+0

我剛用過32條習慣 –

+0

噢謝謝!但是現在我怎麼才能讓它在單詞之間仍然有空格呢? – user3806226

1

有很多事情可以做,可能最簡單的學習就是使用if語句來檢查空格。

for(int i = 0; i<sample.size();i++){ 
     if(!Character.isWhitespace(sample.get(i)) { 
      sample.set(i,'!'); 
     } 
    } 
+0

哦謝謝你!但是現在我怎麼才能讓它在單詞之間仍然有空格呢? – user3806226

+0

@ user3806226:這就是以上所做的。你有沒有試過理解代碼並運行它? –

+0

是的,我試過了,並改爲有正確數量的感嘆號,但我想要的是它從: HELLO GOODBYE!到 !!!!! !!!!!!!! – user3806226

1

更好地使用正則表達式和字符串方法的replaceAll

String helloWorld = "HELLO WORLD!"; 
String newVal = helloWorld.replaceAll("\\S", "!"); 

這個表達式替換所有非空格字符。