Проверять конец строки в Java несколько раз? - PullRequest
0 голосов
/ 08 августа 2011

Итак, в Java я знаю, что str.endsWith(suffix) проверяет, заканчивается ли str чем-то.Допустим, у меня есть текст со строкой «Ты старый».Как бы я взял «старый» и установить его в качестве переменной, чтобы я мог распечатать его в консоли?

Я знаю, что мог бы сделать:

if(str.endsWith("old")){ 
   String age = "old";
}

Но тогда яу меня будет больше опций, так что тогда мне придется сделать:

if(str.endsWith("option1")){ 
   String age = "option1";
}

if(str.endsWith("option2")){ 
   String age = "option2";
}

...

Есть ли более эффективный и менее подробный способ проверки конца строк при записи многих, возможно, сотен операторов if

Format:
    setting: option
    setting2: option2
    setting3: option3 ...

Независимо от того, что такое «опция», я хочу установить ее в переменную.

Ответы [ 6 ]

2 голосов
/ 08 августа 2011

Если вы работаете с предложениями и хотите получить слово, выполните

String word = str.substring(str.lastIndexOf(" "));

. Вам может понадобиться +1 после lastIndexOf (), чтобы освободить пробел.Это то, что вы ищете?

1 голос
/ 08 августа 2011

Откройте ваш файл и прочитайте строку методом readLine().Затем, чтобы получить последнее слово строки, вы можете сделать так, как предлагается здесь

0 голосов
/ 08 августа 2011

Если вас беспокоит повторение очень похожего кода, ответ всегда (99%) на создать функцию,

Итак, в вашем случае вы можете сделать следующее:

public void myNewFunction(String this, String that){
    if(this.endsWith(that)){ 
    String this = that;

    }
}

...

String str = "age: old";
myNewFunction(str, "old"); //Will change str
myNewFunction(str, "new"); //Will NOT change str

И если это слишком много, вы можете создать класс, который сделает все это за вас. Внутри класса вы можете отслеживать список ключевых слов. Затем создайте метод, который будет сравнивать данное слово с каждым ключевым словом. Таким образом, вы можете вызывать одну и ту же функцию для нескольких строк без дополнительных параметров.

0 голосов
/ 08 августа 2011

Это то, что вы ищете?

List<String> suffixes = new ArrayList<String>();
suffixes.add("old");
suffixes.add("young");

for(String s: suffixes)
{
    if (str.endsWith(s))
    {
        String age = s;

        // .... more of your code here...
    }
}
0 голосов
/ 08 августа 2011

Вы имеете в виду, как:

String phrase = "old";
if(str.endsWith(old)){ 
0 голосов
/ 08 августа 2011

Вы можете использовать этот код Java для решения вашей проблемы:

String suffix = "old";

if(str.endsWith(suffix)) {
    System.out.println(suffix);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...