Попробуйте переключиться:
switch (operator) {
case "+":
result = num1 + num2;
System.out.println("The addition result is " + result);
break;
case "-":
result = num1 - num2;
System.out.println("The subtraction result is " + result);
break;
case "-":
result = num1 * num2;
System.out.println("The multiplication result is " + result);
break;
case "/":
result = num1 / num2;
System.out.println("The integer division result is " + result);
break;
default:
throw IllegalArgumentException("Unsupported operator: " + operator);
}
$newString = preg_replace('/[^a-z0-9]/i', '_', $join);
Это должно сработать.
Регулярное выражение для всего, что не является az, AZ, 0-9, это:
preg_replace('/[^a-zA-Z0-9]/', "_", $join);
Это известно как Класс отрицательных символов
Самый простой способ - это:
preg_replace('/\W/', '_', $join);
\ W - группа, не состоящая из слов. Символом слова являются az, AZ, 0-9 и _. \ W соответствует всему, что не было упомянуто ранее *.
Редактировать: preg использует регулярные выражения Perl, задокументированные в документе perlman perlre .
* Редактировать 2: Предполагается, что C или одна из английских локалей , Другие локали могут иметь буквы с акцентом в классе символов слова. Локали Unicode будут считать символы ниже кодовой точки 128 символами.