我试图解决一个需要这些边界的问题:
“字符串变量fullName包含以下两种格式之一的名称:
姓,名(逗号后跟空白),或
名姓(单个空白)
将名字提取到String变量firstName中,将姓氏提取到String变量lastName中。假设变量已经声明并且fullName已经初始化。您还可以声明任何其他必要的变量。”
我的问题是fullName.indexOf(",") != -1
部分为什么起作用?它有什么作用?有人可以向我解释负面指数吗?因为从我的角度来看,fullName中的逗号索引比-1大很多,因为它位于句子的中间
这是我找到答案的代码:
if (fullName.indexOf(",") != -1){
lastName = fullName.substring(0, fullName.indexOf(","));
firstName = fullName.substring(fullName.indexOf(",") +2 , fullName.length());
}
else{
firstName= fullName.substring(0, fullName.indexOf(" "));
lastName= fullName.substring(fullName.indexOf(" ")+1, fullName.length());
}
最佳答案
方法String.indexOf(String)返回:
指定子字符串的第一个匹配项的索引,
或-1
(如果没有这种情况)。
因此,您的代码意味着:
if(fullName contains a comma){
// create lastName firstName from the index of the comma
}else{
// create lastName firstName from the index of the the space
}
关于java - 函数fullName.indexOf(“,”)!= -1有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49710821/