if then else - variable made local only



正如您在下面的代码中看到的,我想检查一个字符串是否有?以他的名义。如果有,请移除。我的问题是,变量'nameOfFileOnlyCleaned'保持本地,是空的if else之后。谢谢你的帮助。

String nameOfFile = list_attachments_Of_Reference[j].toString().split('/').last;
if (nameOfFile.contains('?')) { //Removes everything after first '?'
String nameOfFileOnlyCleaned = nameOfFile.substring(0, nameOfFile.indexOf('?'));
} else{
String nameOfFileOnlyCleaned = nameOfFile;
}
//Here my variable 'nameOfFileOnlyCleaned' is empty. 
This is a problem because the value should be used later 
in the code. Do you know why I have this issue please? 
Many thanks.
String extensionFile = nameOfFileOnlyCleaned.split('.').last;

String url_Of_File = list_attachments_Of_Reference[j].toString();

应该在if/else语句之前定义变量,如下所示:

String nameOfFileOnlyCleaned = "";
if (nameOfFile.contains('?')) { //Removes everything after first '?'
nameOfFileOnlyCleaned = nameOfFile.substring(0, nameOfFile.indexOf('?'));
} else{
nameOfFileOnlyCleaned = nameOfFile;
}
例如:

String nameOfFile = "test?test";
String nameOfFileOnlyCleaned;
if (nameOfFile.contains('?')) { //Removes everything after first '?'
nameOfFileOnlyCleaned = nameOfFile.substring(0, nameOfFile.indexOf('?'));
} else{
nameOfFileOnlyCleaned = nameOfFile;
}

print(nameOfFileOnlyCleaned);

返回:test

最新更新