Проверьте строку на заглавную букву и найдите позицию
Мне нужно проверить, есть ли в моей строке "сэр" некоторые заглавные буквы, если да, мне нужно присвоить значение этой буквы другой строке, а затем удалить букву. моя первая часть выглядит так:
Pattern p = Pattern.compile("[^A-Z]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(sir);
boolean b = m.find();
так что я проверяю, есть ли заглавная буква, тогда мне нужно добавить назначение и удаление. я не уверен, если это работает. Также я нашел другой способ:
StringTokenizer stringTokenizer = new StringTokenizer(sir);
while (stringTokenizer.hasMoreTokens()) {
String a = stringTokenizer.nextToken();
if(a.equals(a.toUpperCase())) {
upper = a;
}
}
верхний возвращает ноль каждый раз, даже если sir = cL
Кто-нибудь знает способ:
- получить заглавную букву и позицию из строки
- удали это
Любая помощь приветствуется.
3 ответа
Чтобы удалить все буквы в верхнем регистре из строки:
String repl = sir.replaceAll("[A-Z]+", "");
Чтобы скопировать все буквы UPPERCASE из строки в другую строку:
String upper = sir.replaceAll("[^A-Z]+", "");
Вы также можете попробовать библиотеки "гуавы". Там вы можете найти множество классов для работы со строками. Среди них CharMatcher ( https://code.google.com/p/guava-libraries/wiki/StringsExplained)
Простой пример кода может быть:
String string = "ABcdEFgh45";
String withoutUpperCase = CharMatcher.JAVA_UPPER_CASE.removeFrom(string);
//returns cdgh45
Это даст вам все заглавные буквы в строке:
String inputString;
String outputString = "";
for (int i = 0; i < inputString.length; i++) {
c = inputString.charAt(i);
ouptutString += Character.isUpperCase(c) ? c + " " : "";
}