2016-09-30 57 views
-1

我試圖替換數組中的字符串,然後將其轉換爲字符串,但它不是我想要的。這是我的例子:數組在java中的字符串

String data = "ABC 00 0 03 54   BTT"; 
    String[] tokens = data.split("\\s+"); 
    for(int i=0; i<tokens.length; i++){ 
     if(tokens[i] == "BTT"){ 
      tokens[i] = tokens[i].replace("BTT"," "); 
     } 
    } 
    data = Arrays.toString(tokens); 
    Log.log(Log.VRB, "DEBUG: field =" + data); 

OUTPUT: DEBUG:場= [ABC,00,0,03,54,BTT]

但我曾試圖得到這樣的輸出:DEBUG:場= ABC 00 0 03 54

任何人都可以給我這個想法,我該如何解決它?

感謝。

+3

陣列上的環路和自己打印值... – brso05

+2

使用令牌[I] .equals(「BTT」),「==」在Java中不工作,你會覺得對字符串比較。 –

+0

好雅各布,我會改變比較像令牌[我] .equals(「BTT」),但問題是我的代碼並不取代BTT與空間或刪除它。也是輸出不像ABC 00 0 03 54那樣輸入。它就像[ABC,00,0,03,54,BTT] –

回答

-1

使用.equals()方法,然後在陣列上進行迭代,以將其打印作爲字符串如下:

String data = "ABC 00 0 03 54   BTT"; 
    String[] tokens = data.split("\\s+"); 
    for(int i=0; i<tokens.length; i++){ 
     if(tokens[i].equals("BTT")){ 
      tokens[i] = tokens[i].replace("BTT"," "); 
     } 
    } 
    data = Arrays.toString(tokens); 
    Log.log(Log.VRB, "DEBUG: field =" + data);  

    StringBuffer b =new StringBuffer(); 
    for(int i = 0; i< tokens.length; i++) 
    { 
     b.append(tokens[i]); 

     if(i< tokens.length -1) 
     { 
      b.append(" "); 
     } 
    } 

    Log.log(Log.VRB, "DEBUG: field =" + b.toString()); 
+0

謝謝韋爾,讓我試試看,我會讓你知道結果會是什麼。 –

+0

順便說一句,我不應該刪除這部分? –

+0

data = Arrays.toString(tokens); Log.log(Log.VRB,「DEBUG:field =」+ data); –

-1

有這種用於字符串:.substring(INT開始,INT端);

Log.log(Log.VRB, "DEBUG: field =" + data.substring(1, data.length()-1)); 

它刪除字符串中的第一個和最後一個字符([和])。

+0

[]由Array類添加以表示數組中的值 – Wael

0

如果您想比較2個字符串的值,請使用==,因爲它用於在堆中使用它們的地址。

請將tokens[i] == "BTT"替換爲tokens[i].equals("BTT") 。它會比較它們的值。

對不起英文:)

-1

使用String類替換和replaceAll實用程序方法。

String data =「ABC 00 0 03 54 BTT」; (Log.VRB,「DEBUG:field =」+ data.trim()。replaceAll(「+」,「」).replace(「BTT」,「」));

1
String data = "ABC 00 0 03 54   BTT"; 
String[] tokens = data.split("\\s+"); 
data = Arrays.stream(data.split("\\s+")) 
      .filter(s -> !"BTT".equals(s)) 
      .collect(Collectors.joining(" ")); 
Log.log(Log.VRB, "DEBUG: field = " + data); 

Output => DEBUG: field = ABC 00 0 03 54