多次检查Java中字符串的结尾?

时间:2011-08-08 17:20:06

标签: java string

所以在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 个答案:

答案 0 :(得分:2)

如果您正在使用句子而想要获得该词,请执行

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

您可能需要在lastIndexOf()之后输入+1才能将空格分开。 那是你在找什么?

答案 1 :(得分:1)

打开文件并使用readLine()方法阅读该行。然后根据建议here

获取字符串的最后一个单词

答案 2 :(得分:0)

您可以使用此Java代码来解决您的问题:

String suffix = "old";

if(str.endsWith(suffix)) {
    System.out.println(suffix);
}

答案 3 :(得分:0)

你的意思是:

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

答案 4 :(得分:0)

这是你要找的吗?

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...
    }
}

答案 5 :(得分:0)

如果你担心重复非常相似的代码,答案总是(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

如果这太多了,你可以创建一个能够为你完成所有这些工作的课程。在课堂内,您可以跟踪关键字列表。然后,创建一个方法,将给定的单词与每个关键字进行比较。这样,您可以在许多字符串上调用相同的函数,而无需其他参数。