【问题标题】:Regarding String array declaration关于字符串数组声明
【发布时间】:2023-03-11 12:19:01
【问题描述】:

我有下面的字符串赋值语句

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

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

【问题讨论】:

  • 请格式化代码:stackoverflow.com/editing-help 如果您是新手,我会为您做,但这是您的第 24 个问题——您现在应该回答这个问题。 :-)

标签: java string


【解决方案1】:

这是三元运算符擅长的场景类型(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);
} 

【讨论】:

【解决方案2】:

在外面声明:

String items[];

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

【讨论】:

    猜你喜欢
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    相关资源
    最近更新 更多