所以在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 ...
无论“选项”是什么,我都想将其设置为变量。
答案 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
如果这太多了,你可以创建一个能够为你完成所有这些工作的课程。在课堂内,您可以跟踪关键字列表。然后,创建一个方法,将给定的单词与每个关键字进行比较。这样,您可以在许多字符串上调用相同的函数,而无需其他参数。