关于字符串数组声明

时间:2010-03-10 10:02:39

标签: java string

我有以下字符串赋值语句

String items[] = line.split("\",\"",15);
String fileNamet = items[1].replaceAll("\"","").trim();

我需要引入一个新的if语句

if (valid) {
    String items[] = line.split("\",\"",15);
} else {
    String items[] = line.split("\",\"",16);
} 
String fileNamet = items[1].replaceAll("\"","").trim();

现在,item变为if循环的本地,并且给了我编译错误。如何在if循环之外声明items数组?

2 个答案:

答案 0 :(得分:6)

这是三元运算符擅长的场景(JLS 15.25 Conditional Operator ?:

String[] items = line.split("\",\"", (valid ? 15 : 16));

没有重复的代码,一旦你习惯它,它就会更好。

那就是说,你也可以在if之外取出声明,如果这是你更熟悉的话。

String[] items;
if (valid) {
  items = line.split("\",\"",15);
} else {
  items = line.split("\",\"",16);
} 

答案 1 :(得分:1)

在外面宣布:

String items[];

if (valid) { 
    items = line.split("\",\"",15); 
} else { 
    items = line.split("\",\"",16); 
} 
String fileNamet = items[1].replaceAll("\"","").trim();