2010-03-10 96 views
1

我有以下字符串赋值语句关于字符串数组声明

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(); 

现在的项目成为当地的,如果循环,是给我的编译错误。如何在if循环外声明items数组?

+0

请格式化代码:http://stackoverflow.com/editing-help如果你是一个新手,我会为你做,但是这是你的第24个问题 - 你现在应该在这个问题上。 :-) – 2010-03-10 10:06:27

回答

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); 
} 
+0

非常感谢。 poly在下面的问题上需要一些帮助。 http://stackoverflow.com/questions/2421760/regarding-java-command-line-arguments – Arav 2010-03-11 02:43:45

1

外声明它:

String items[]; 

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

非常感谢您的信息 – Arav 2010-03-11 02:44:19