давайте предположим, что это числовая строка, в которой первое слово находится в точке X, а второе слово в точке y.
Что касается вопроса, нам нужно указать, что входное слово лежит ниже x, между xи у или за его пределами y.
Теперь возникает вопрос, как будет происходить сравнение для разных слов?
видя приведенный выше пример, мы можем заключить, что еслилюбой символ первой строки, если он больше, чем символ в той же позиции другой строки, то мы можем сказать, что первая строка больше, чем другие. Например:
- Aa
- Aq> Apple - потому что 2-й «q» в «Aq» будетлежат за 2-ой «p» в «Apple» в числовой строке.
App
public static void main (String args []) {
Scanner sc = new Scanner(System.in);
String startWord = sc.next(); // this will give "Apple"
String endWord = sc.next(); // this will give "Pear"
while (sc.hasNext()) {
String queryWord = sc.next();
if (compare_str(queryWord, startWord) < 0 && compare_str(queryWord, endWord) < 0) {
System.out.println("before");
} else if (compare_str(queryWord, startWord) > 0 && compare_str(queryWord, endWord) > 0) {
System.out.println("after");
} else if (compare_str(queryWord, startWord) >= 0 && compare_str(queryWord, endWord) <= 0) {
System.out.println("inside");
}
}
sc.close();
}
Я разработал пользовательскую функцию сравнения, которая сравнивает строку и возвращает статус в виде 1,0, -1.
public static int compare_str(String a, String b) {
int len = Math.min(a.length(), b.length());
for (int i = 0; i < len; i++) {
if (a.charAt(i) == b.charAt(i))
continue;
if ((a.charAt(i) > b.charAt(i)))
return 1;
else
return -1;
}
if (b.length() > a.length())
return -1;
if (b.length() < a.length())
return 1;
return 0;
}
Надеюсь, этот фрагмент кода будет полезным.