2015-01-07 2 views
0

У меня есть строкаКак проверить, если подстрока находится в конце строки

String str = "Hello there how are you" 

и подстрока

String substr = "how are you". 

Я проверяю, если строка содержит подстроку, как это:

if (str.toLowerCase().contains(substr.toLowerCase())) { 
    // now check if substr is the last part of str 
} 

Если подстрока является в пределах строки, я хочу, чтобы проверить, является ли или н Подстрока - это последняя часть строки. В любом случае я могу это сделать? Благодаря!

+1

Ознакомьтесь с методом 'indexOf' и примените некоторую базовую арифметику. –

+3

вы можете использовать endWith непосредственно http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#endsWith(java.lang.String) – ale64bit

+1

В случае сомнений прочитайте документы. – csmckelvey

ответ

3

Вы будете желая String.endsWith() метод:

if (str.toLowerCase().endsWith(substr.toLowerCase()) 
+0

Удивительный, не знал о кончикахWith()! Спасибо за помощь, соглашусь через 7 минут :) – user1282637

1

Вы можете использовать метод endsWith вместо многоступенчатого подхода, если это все, что вы хотите знать:

if (str.toLowerCase().endsWith(substr.toLowerCase())) { 

Если вам нужно знать оба (потому что у вас есть контент за пределами второго if ниже) и/или сделать что-то еще более совершенное, вы можете использовать отдельные строки:

if (str.toLowerCase().contains(substr.toLowerCase())) { 
    if (str.toLowerCase().endsWith(substr.toLowerCase())) { 
    } 
} 
Смежные вопросы