2010-03-10 59 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