我试图解决一个需要这些边界的问题:

“字符串变量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/

10-14 05:43