在Java中多次检查字符串的结尾?
所以在Java中,我知道在Java中多次检查字符串的结尾?,java,string,Java,String,所以在Java中,我知道str.endsWith(后缀)测试str是否以某物结尾。假设我有一个文本,里面有一行“你老了”。如何将“old”设置为变量,以便在控制台中打印出来 我知道我能做到: if(str.endsWith("old")){ String age = "old"; } 但我会有更多的选择,所以我必须: if(str.endsWith("option1")){ String age = "option1"; } if(str.endsWith("option2"
str.endsWith(后缀)
测试str是否以某物结尾。假设我有一个文本,里面有一行“你老了”。如何将“old”设置为变量,以便在控制台中打印出来
我知道我能做到:
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 ...
无论“选项”是什么,我都想将其设置为变量。您可以使用以下Java代码来解决您的问题:
String suffix = "old";
if(str.endsWith(suffix)) {
System.out.println(suffix);
}
您可以使用以下Java代码来解决您的问题:
String suffix = "old";
if(str.endsWith(suffix)) {
System.out.println(suffix);
}
你是说:
String phrase = "old";
if(str.endsWith(old)){
你是说:
String phrase = "old";
if(str.endsWith(old)){
如果你在使用句子,你想得到这个词,那么就去做吧
String word = str.substring(str.lastIndexOf(" "));
可能需要在lastIndexOf()之后加上+1以留出空格。
这就是你要找的吗?如果你在处理句子,你想得到这个词,就去做吧
String word = str.substring(str.lastIndexOf(" "));
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...
}
}
可能需要在lastIndexOf()之后加上+1以留出空格。
这就是你要找的吗?打开你的文件,用
readLine()
方法读取这一行。然后,要获取字符串的最后一个单词,可以按照建议执行操作打开文件,并使用readLine()
方法读取该行。然后,要获取字符串的最后一个单词,您可以按照建议执行操作这就是您要查找的内容吗
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...
}
}
List后缀=new ArrayList();
后缀。添加(“旧”);
后缀。添加(“young”);
for(字符串s:后缀)
{
如果(str.endsWith)
{
字符串年龄=s;
//…更多的代码在这里。。。
}
}
这就是你要找的吗
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...
}
}
List后缀=new ArrayList();
后缀。添加(“旧”);
后缀。添加(“young”);
for(字符串s:后缀)
{
如果(str.endsWith)
{
字符串年龄=s;
//…更多的代码在这里。。。
}
}
如果您担心重复非常相似的代码,答案总是(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
如果这太多了,您可以创建一个类来为您完成所有这些。在类中,您可以跟踪关键字列表。然后,创建一个将给定单词与每个关键字进行比较的方法。这样,您就可以在多个字符串上调用相同的函数,而无需附加参数 如果您担心重复非常相似的代码,答案总是(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
如果这太多了,您可以创建一个类来为您完成所有这些。在类中,您可以跟踪关键字列表。然后,创建一个将给定单词与每个关键字进行比较的方法。这样,您就可以在多个字符串上调用相同的函数,而无需附加参数 显示一些示例输入和输出,以及确定要提取多少“字符串结尾”的规则。
age:old
我想从结尾提取old。@Ken:“提取”是什么意思?显示一些示例。总是用“旧”这个字串吗?是在:
冒号字符后面的东西吗?规则是什么?如果你在搜索“旧”,那么你在提取什么?“老”就是“老”。如果你想要“旧”的东西,那是一个不同的问题,但不是你现在问的问题。例如,如果您有像“My age is[someString]”这样的字符串,并且[someString]有不同的可能性,那么您可以使用正则表达式来查找它。对找到的字符串执行的操作仍然需要if/switch大小写,但至少解析将在一条语句中进行。显示一些示例输入和输出,以及确定要提取多少“字符串结尾”的规则。age:old
我想从结尾提取old。@Ken:“提取”是什么意思?展示一些例子。总是用“旧”这个字串吗?是在:
冒号字符后面的东西吗?规则是什么?如果你在搜索“旧”,那么你在提取什么?“老”就是“老”。如果你想要“旧”的东西,那是一个不同的问题,但不是你现在问的问题。例如,如果您有像“My age is[someString]”这样的字符串,并且[someString]有不同的可能性,那么您可以使用正则表达式来查找它。对找到的字符串执行的操作仍然需要if/switch大小写,但至少解析将在一条语句中完成。谢谢。这就是我想要的。我只是不擅长解释。谢谢。这就是我想要的。我只是不善于解释。