Java:如何在char之前返回字符串

时间:2012-09-07 15:25:14

标签: java string

我有以下字符串

String name = "John - Paul"

所以我想做的是检索John(所有-之前)。这是我正在尝试但我无法在-之后才能从

之后检索
String parseName = name.substring(name.indexOf(" - ", -1), name.indexOf(" - ", 0));

你是如何做到的,有人也可以解释(注意:我不想使用正则表达式)?

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

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

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