我试图解决一个问题,要求这些周界:
" 字符串变量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());
}
答案 0 :(得分:2)
-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(",")