使用Java拆分简单数组时,如何在不使用println的情况下引用特定值?
我有一个由"||"
分隔的字符串 - 我想操纵该字符串,以便我可以调用它的每一半并将每个位分配给一个新字符串。如果这是php我会使用list()或explode(),但我似乎无法让变量起作用。
我想
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 :(得分: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));