在java中引用数组中的值

时间:2014-01-22 01:14:21

标签: java android eclipse

使用Java拆分简单数组时,如何在不使用println的情况下引用特定值?

我有一个由"||"分隔的字符串 - 我想操纵该字符串,以便我可以调用它的每一半并将每个位分配给一个新字符串。如果这是php我会使用list()或explode(),但我似乎无法让变量起作用。

我想

  1. 将每个临时数组的一半内容输出到屏幕和
  2. 将这些部分加在一起,因为message = temp[0]+ "-"+ temp[1];似乎不起作用。
  3. 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); 
    }
    

1 个答案:

答案 0 :(得分:7)

乍一看似乎你的问题就在这里

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

因为split使用正则表达式作为参数,而正则表达式|是表示OR的特殊字符。因此,使用||拆分:空字符串""或空字符串""或空字符串""
由于空字符串始终位于每个字符之前,并且在分割后的字符结果(例如"abc".split("||"))将为["", "a", "b", "c"](默认情况下删除的最后一个空字符串将从结果数组中删除)。

要解决此问题,您必须转义|。你可以把\(在Java中需要写成"\\")放在这个元字符之前,或者你可以使用Pattern.quote(regex)为你转义所有regex元字符。尝试

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