я удивлен что никто не выкладывает эталонный пример того, как не надо писать, из сырцов овера/лв, который так и кочует из сборки в сборку и никто его почему-то не исправляет
метод из класса ExProperties
Код:
public static boolean parseBoolean(String s)
{
switch (s.length()) {
case 1: {
char ch0 = s.charAt(0);
if (ch0 == 'y' || ch0 == 'Y' || ch0 == '1')
{
return true;
}
if (ch0 == 'n' || ch0 == 'N' || ch0 == '0')
{
return false;
}
break;
}
case 2: {
char ch0 = s.charAt(0);
char ch1 = s.charAt(1);
if ((ch0 == 'o' || ch0 == 'O') &&
(ch1 == 'n' || ch1 == 'N') )
{
return true;
}
if ((ch0 == 'n' || ch0 == 'N') &&
(ch1 == 'o' || ch1 == 'O') )
{
return false;
}
break;
}
case 3: {
char ch0 = s.charAt(0);
char ch1 = s.charAt(1);
char ch2 = s.charAt(2);
if ((ch0 == 'y' || ch0 == 'Y') &&
(ch1 == 'e' || ch1 == 'E') &&
(ch2 == 's' || ch2 == 'S') )
{
return true;
}
if ((ch0 == 'o' || ch0 == 'O') &&
(ch1 == 'f' || ch1 == 'F') &&
(ch2 == 'f' || ch2 == 'F') )
{
return false;
}
break;
}
case 4: {
char ch0 = s.charAt(0);
char ch1 = s.charAt(1);
char ch2 = s.charAt(2);
char ch3 = s.charAt(3);
if ((ch0 == 't' || ch0 == 'T') &&
(ch1 == 'r' || ch1 == 'R') &&
(ch2 == 'u' || ch2 == 'U') &&
(ch3 == 'e' || ch3 == 'E') )
{
return true;
}
break;
}
case 5: {
char ch0 = s.charAt(0);
char ch1 = s.charAt(1);
char ch2 = s.charAt(2);
char ch3 = s.charAt(3);
char ch4 = s.charAt(4);
if ((ch0 == 'f' || ch0 == 'F') &&
(ch1 == 'a' || ch1 == 'A') &&
(ch2 == 'l' || ch2 == 'L') &&
(ch3 == 's' || ch3 == 'S') &&
(ch4 == 'e' || ch4 == 'E') )
{
return false;
}
break;
}
}
throw new IllegalArgumentException("For input string: \"" + s + "\"");
}