2014-01-22 40 views
4

使用Java分割簡單數組時,如何在不使用println的情況下引用特定值?在java中引用數組中的值

我有一個由"||"分隔的字符串 - 我想操縱該字符串,以便我可以調用它的每一半,並將每個位分配給一個新的字符串。如果這是PHP我會使用列表()或爆炸(),但我似乎無法讓變量工作。

  1. 輸出臨時陣列的每一半的屏幕和內容
  2. 加入部分一起作爲message = temp[0]+ "-"+ temp[1];似乎不工作。
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_display_message); 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      // Show the Up button in the action bar. 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
      } 
    Intent intent = getIntent();  
    String message = intent.getStringExtra(MainActivity.SENTMESSAGE); 

    //The string is (correctly) submitted in the format foo||bar 
    String delimiter = "||"; 
    String[] temp = message.split(delimiter); 

    //??? How do I output temp[0] and temp[1] to the screen without using println? 

    //This gives me a single character from one of the variables e.g. f- 
    for(int i =0; i < temp.length ; i++) 
    message = temp[0]+ "-"+ temp[1]; 

    //if I escape the above 2 lines this shows foo||bar to the eclipse screen 
    TextView textView = new TextView(this); 
    textView.setTextSize(40); 
    textView.setText(message); 

    // Set the text view as the activity layout 
    setContentView(textView); 
} 
+0

_ 「我怎麼輸出溫度[0]和溫度[1]到屏幕上使用的println」 _嚴重不使用'println'?也許可以使用'print','printf','JOptionPane.showMessageDialog'等等? – Baby

+0

Eclipse說我在使用System.out.println()時發生錯誤,因爲它在void類中。 – Simeon

+1

爲什麼你把它作爲單個'String'而不是['意圖#putStringArrayListExtra(..)'](http://developer.android.com/reference/android/content/Intent.html#putStringArrayListExtra%28java.lang.String,%20java.util.ArrayList%3Cjava.lang .String%3E%29) – zapl

回答

7

在拳頭一目瞭然,似乎你的問題是在這裏

String delimiter = "||"; 
String[] temp = message.split(delimiter); 

因爲split使用正則表達式作爲參數,並在正則表達式|是特殊字符代表OR。所以用||您分裂:空字符串""或空字符串""或空字符串""
因爲空字符串總是在每個字符之前,並且字符結果的分割結果如"abc".split("||")將爲(最後一個空字符串默認從結果數組中移除)。

要解決此問題,您必須轉義|。你可以通過在這個元字符之前放置\(在Java中需要寫成"\\")或者你可以使用Pattern.quote(regex)來爲你轉義所有regex元字符。嘗試

String delimiter = "||"; 
String[] temp = message.split(Pattern.quote(delimiter)); 
+0

Ahhhh。非常感謝。我以爲我瘋了。 – Simeon

+1

@Simeon沒問題。我們都從錯誤中學習:) – Pshemo