Вы можете попробовать использовать это регулярное выражение. "\\p{L}|[0-9]"
.
Код использования:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String args[]) {
// String to be scanned to find the pattern.
String line = "~!@#$%^&*(()_+<>?:\"{}|\\][;'./-=`";
String pattern = "\\p{L}|[0-9]"; // regex needed
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
System.out.print("String \"" + line + "\" results to ");
if (m.find()) {
System.out.println("TRUE -> Found value: " + m.group(0));
} else {
System.out.println("FALSE");
}
line = "~~1_~";
m = r.matcher(line);
System.out.print("String \"" + line + "\" results to ");
if (m.find()) {
System.out.println("TRUE -> Found value: " + m.group(0));
} else {
System.out.println("FALSE");
}
line = "~~k_~";
m = r.matcher(line);
System.out.print("String \"" + line + "\" results to ");
if (m.find()) {
System.out.println("TRUE -> Found value: " + m.group(0));
} else {
System.out.println("FALSE");
}
line = "~~汉_~";
m = r.matcher(line);
System.out.print("String \"" + line + "\" results to ");
if (m.find()) {
System.out.println("TRUE -> Found value: " + m.group(0));
} else {
System.out.println("FALSE");
}
}
}
Результат:
String "~!@#$%^&*(()_+<>?:"{}|\][;'./-=`" results to FALSE
String "~~1_~" results to TRUE
String "~~k_~" results to TRUE -> Found value: k
String "~~汉_~" results to TRUE -> Found value: 汉
Для меня это лучший вариант:
Я большой поклонник почти всего с Прагматической книжной полки , но эти два действительно помогли понять суть дела для меня:
Прагматичный программист: от подмастерья до мастера . Это очень хорошо стареет. Я бы порекомендовал его любому разработчику.
Прагматическое модульное тестирование в C # с NUnit, 2-е издание . Не позволяйте названию напугать вас. Понятия довольно независимы от языка, даже с примерами C #.
Совсем недавно написанная книга Искусство модульного тестирования . Я удивлен, что об этом здесь не упомянули.
Книга Astels представляет собой солидное введение, Книга Бека хороша по основным концепциям, Лассе Коскела предлагает новую книгу (Test Driven: TDD и Acceptance TDD для разработчиков Java) . Книга Ошерова , по его словам, посвящена модульному тестированию, а не TDD. Я не уверен, что книга TDD Pragmatics устарела так же, как их оригинальная книга.
В основном все написано на Java или C #, но вы должны суметь понять это сами.