1

我有以下字符串

String name = "John - Paul"

所以我想要做的是检索John(所有之前-)。这就是我正在尝试的,但我无法从之前的-唯一之后检索

String parseName = name.substring(name.indexOf(" - ", -1), name.indexOf(" - ", 0));

你是怎么做到的,有人可以解释一下吗(注意:我不想使用正则表达式)?

4

3 回答 3

6

您正在混合开始和结束索引 - 您需要从第一个字符(索引 = 0)到索引的子字符串" - "

String parseName = name.substring(0, name.indexOf(" - "));
于 2012-09-07T15:26:12.837 回答
0

String.substring 方法的参数是字符串的开头和结尾。因此,当第一个为 0 时,您从头开始选择。

String parseName = name.substring(0, name.indexOf(" - ")); 
于 2012-09-07T15:27:24.767 回答
0

我感谢您对(注意:我不想使用正则表达式)的评论,但我仍然会使用 split() 来写这个 - 尽管它需要一个正则表达式字符串作为它的参数 - 因为这就是它的用途。

String name = "John - Paul";
String firstName = name.split(" - ")[0];

而且,在这种情况下,正则表达式并不比 indexOf() 的参数复杂。

使用 substring() 的答案仍然完全有效。

于 2012-09-07T15:58:40.297 回答