Я предпочитаю решение T John, но если Вы хотите пойти весь код-golfy, Ваш оператор логически уменьшает до этого:
//if key is down, toggle the boolean, else leave it alone.
flipVal = ((wParam==VK_F11) && !flipVal) || (!(wParam==VK_F11) && flipVal);
if(wParam==VK_F11) Break;
//if key is down, toggle the boolean, else leave it alone.
otherVal = ((wParam==VK_F12) && !otherVal) || (!(wParam==VK_F12) && otherVal);
if(wParam==VK_F12) Break;
См. Сообщение Мартина Фаулера на ComposedRegex ] для получения дополнительных идей по улучшению читаемости регулярных выражений. Таким образом, он выступает за разбиение сложного регулярного выражения на более мелкие части, которым можно дать значимые имена переменных. например,
String mandatoryName = "([A-Za-z]+)";
String mandatoryWhiteSpace = "\\s+";
String optionalInitial = "([A-Z]\\.)?";
String pattern = mandatoryName + mandatoryWhiteSpace + optionalInitial +
mandatoryWhiteSpace + mandatoryName;
Я обнаружил, что работает следующее:
String pattern2S =
"([A-Za-z]+) # mandatory firstName\n" +
"\\s+ # mandatory whitespace\n " +
"([A-Z]\\.)? # optional initial\n" +
"\\s+ # whitespace\n " +
"([A-Za-z]+) # mandatory lastName\n";
Ключевым моментом было явное включение символа новой строки \ n в строку
Почему бы вам просто не сделать это:
String pattern2S =
"([A-Za-z]+)" + // mandatory firstName
"\\s+" + // mandatory whitespace
...;
ПРОДОЛЖЕНИЕ:
Если вы хотите сохранить комментарии к шаблону и вам нужно прочитать их из файла свойств, используйте это:
pattern=\
#comment1\\n\
(A-z)\
#comment2\\n\
(0-9)