如何在Java中读取此字符串?

时间:2015-06-25 14:47:08

标签: java regex

我有一个这样的字符串:" xxxxxxx,yyyyyyy - zzzzzz" 有时恰好是" xxxxxxx - zzzzzz" x的长度可能会有所不同。 我想得到的,总是x字。 有一个简单的方法吗?

我的想法是: 通过字符串迭代,将每个我读过的字符都附加到字符串构建器上,直到我读取",",然后打破迭代,我得到了这个词,但这看起来很混乱。

所以也许有一种更简单的方法可以做到这一点。

1 个答案:

答案 0 :(得分:1)

以下是获得第一个角色的几种方法:

String str = "x , y - zzzzzz";
System.out.println(str.charAt(0));
System.out.println(str.substring(0, 1));
System.out.println(str.replaceAll("^(.).*", "$1"));

请参阅IDEONE demo

选择您更喜欢的那个:)

<强>更新

要查找第一个单词,您可以使用以下正则表达式模式:

String pattern = "[\\s\\p{P}]+";

\s代表空格,\p{P}代表标点符号。

您可以在{/ p>中使用split

String str = "xxxxxxx , yyyyyyy - zzzzzz";
System.out.println(str.split(pattern)[0]);
str = "xxxxxxx - zzzzzz";
System.out.println(str.split(pattern)[0]);
str = "xxxxxxx, zzzzzz";
System.out.println(str.split(pattern)[0]);
str = "xxxxxxx-zzzzzz";
System.out.println(str.split(pattern)[0]);

所有人都会输出xxxxxxx。但是,如果您需要将标点符号限制为较小的子集,请在&&[^-]否定减法中排除它们:

[\\s\\p{P}&&[^-]]+

或者只是定义自己的范围:

[\\s.,;:]+

只需another demo