爲什麼我的if-else塊沒有檢測到gamma是空的?這是我的代碼。它是一個Spreadsheet應用程序,這是一個保存函數,循環遍歷表中的所有單元格並將其寫入文件。這裏是我的代碼:爲什麼我的工作不正常?
public void Save() {
String FileName = JOptionPane.showInputDialog("Please enter the name for your file:");
if (FileName == null) {
System.err.println("You didn't enter anything");
} else {
int rows = Table.getRowCount();
int columns = Table.getColumnCount();
int alpha = 0;
int beta = 1;
choicer.setCurrentDirectory(new java.io.File("Desktop"));
choicer.setDialogTitle("Save Document");
choicer.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
choicer.setAcceptAllFileFilterUsed(false);
if (choicer.showSaveDialog(new JPanel()) == JFileChooser.APPROVE_OPTION) {
dir = String.valueOf(choicer.getSelectedFile());
}
File f = new File(dir + "\\" + FileName + ".txt");
try {
fos = new FileOutputStream(f);
osw = new OutputStreamWriter(fos);
w = new BufferedWriter(osw);
for (alpha = 0; alpha <= rows - 1; alpha++) {
for (beta = 1; beta < columns; beta++) {
String gamma = String.valueOf(Table.getValueAt(alpha, beta));
if (gamma != null) {
w.write("<%! " + gamma + " !%> ");
} else {
w.write(" <%! |^-^| !%> ");
}
}
w.write("\n");
}
} catch (IOException e) {
System.err.println("Some prob dude. Too big for me");
} finally {
try {
w.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
我試過由重複的東西給出的鏈接,但是這並沒有解決我的問題。如果我做if(gamma != null && !(gamma.isEmpty))
那麼只有null寫入文件作爲伽馬值。
也許,伽瑪不是空的......但是空的,不是嗎?檢查如下:「gamma!= null &&!gamma.isEmpty()」 – W0rmH0le
也許你可以減少你的代碼示例到顯着的行,幷包括細節re。 Table.getValueAt()? –
@BrianAgnew我添加了所有的代碼,以防萬一有人想要額外的驗證 –