函数fullName.indexOf(",")!= -1做什么?

时间:2018-04-07 18:50:38

标签: java

我试图解决一个问题,要求这些周界:

" 字符串变量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());
}

5 个答案:

答案 0 :(得分:2)

方法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
}

答案 1 :(得分:0)

fullName.indexOf(",")将返回全名String中出现,字符的索引。如果它返回-1,则表示字符串中没有,个字符。 通过此if语句,开发人员想要查找全名格式是否为" LastName,FirstName "或" FirstName LastName "。

答案 2 :(得分:0)

String.indexOf(char c)

说明 此方法返回指定字符第一次出现的字符串中的索引,如果字符未出现,则返回-1。

示例

String test = "he,llo";                       // 0 1 2 3 4 5
int index = test.indexOf(','); //This returns 2 [h e , l l o]

String test = ",hello";                       // 0 1 2 3 4 5
int index = test.indexOf(','); //This returns 0 [, h e l l o]

String test = "hello";                         // 0 1 2 3 4
int index = test.indexOf(','); //This returns -1 [h e l l o] because it did not find any match of the specified character and therefore I can not assign it a position

假设您只使用姓名和姓氏,可以使用trim()方法删除空格,然后使用split(char)方法获取两个相应的部分

String name = "Jhon, Beuler";

String firstName = splitName(name)[0]; //First part of String (Jhon)
String lastName = splitName(name)[1]; //Seond part of String (Beuler)

public static String[] splitName(String name)
{
   return name.trim().split(",");
}

答案 3 :(得分:0)

正如你所说

  

因为根据我所看到的,fullName中的逗号索引将远远超过-1,因为它位于句子的中间

!=检查找到的索引是否为0或更高,因此不是-1。因此是否有逗号。如果有逗号,则由此分割。如果没有你使用空格拆分。

答案 4 :(得分:0)

这是一种不那么清晰的写作方式href。实际上,如果你查看scraping NEW ITEM /en-US/product/47341/nike/sneakers/air_maestro_ii_ltd_sneakers NEW ITEM /en-US/product/47218/y3/sneakers/saikou_sneakers sleeping scraping NEW ITEM /en-US/product/47229/y3/sneakers/tangutsu_slip_on sleeping 的源代码,你会发现它基本上是如何实现的。

但是这样编写它偶尔会有用:如果你将值存储在一个变量中,你可以避免重复评估它,这可能会花费大量的成本你在一个大字符串上做:< / p>

fullName.contains(",")