检查 Java switch case 中的布尔值
Checking for boolean in Java switch case
所以我在 switch 中有一个 switch case 我正在输入一个字符串,我的 case 是 .contains ,如下面的代码所示:
intcheck: switch(line){
case line.contains("0"):
case line.contains("1"):
case line.contains("2"):
case line.contains("3"):
case line.contains("4"):
case line.contains("5"):
case line.contains("6"):
case line.contains("7"):
case line.contains("8"):
case line.contains("9"):
break intcheck;
default:
names.put(br.readline(),0);
}
是否可以使用 switch 语句实现与此类似的东西,或者我必须使用
如果语句。还有一种更简单的方法来检查字符串是否包含数字或者是否可以?
虽然可以用不同的方式做得更好,但如果您坚持使用 switch-case
构造,请试试这个:
OptionalInt containedNumber = OptionalInt.empty();
Intcheck: for( var i = 0; i < 10; ++i )
{
switch( i )
{
case 0: if( line.contains( "0" ) containedNumber = OptionalInt.of( 0 ); break Intcheck;
case 1: if( line.contains( "1" ) containedNumber = OptionalInt.of( 1 ); break Intcheck;
…
case 9: if( line.contains( "9" ) containedNumber = OptionalInt.of( 9 ); break Intcheck;
default:
continue IntCheck;
}
}
if( containedNumber.isEmpty() ) names.put( br.readline(), 0 )
没有 switch-case
:
OptionalInt containedNumber = OptionalInt.empty();
for( var i = 0; (i < 10) && containedNumber.isEmpty(); ++i )
{
if( line.contains( Integer.toString( i ) ) containedNumber = OptionalInt.of( i );
}
if( containedNumber.isEmpty() ) names.put( br.readline(), 0 )
所以我在 switch 中有一个 switch case 我正在输入一个字符串,我的 case 是 .contains ,如下面的代码所示:
intcheck: switch(line){
case line.contains("0"):
case line.contains("1"):
case line.contains("2"):
case line.contains("3"):
case line.contains("4"):
case line.contains("5"):
case line.contains("6"):
case line.contains("7"):
case line.contains("8"):
case line.contains("9"):
break intcheck;
default:
names.put(br.readline(),0);
}
是否可以使用 switch 语句实现与此类似的东西,或者我必须使用 如果语句。还有一种更简单的方法来检查字符串是否包含数字或者是否可以?
虽然可以用不同的方式做得更好,但如果您坚持使用 switch-case
构造,请试试这个:
OptionalInt containedNumber = OptionalInt.empty();
Intcheck: for( var i = 0; i < 10; ++i )
{
switch( i )
{
case 0: if( line.contains( "0" ) containedNumber = OptionalInt.of( 0 ); break Intcheck;
case 1: if( line.contains( "1" ) containedNumber = OptionalInt.of( 1 ); break Intcheck;
…
case 9: if( line.contains( "9" ) containedNumber = OptionalInt.of( 9 ); break Intcheck;
default:
continue IntCheck;
}
}
if( containedNumber.isEmpty() ) names.put( br.readline(), 0 )
没有 switch-case
:
OptionalInt containedNumber = OptionalInt.empty();
for( var i = 0; (i < 10) && containedNumber.isEmpty(); ++i )
{
if( line.contains( Integer.toString( i ) ) containedNumber = OptionalInt.of( i );
}
if( containedNumber.isEmpty() ) names.put( br.readline(), 0 )