我有一个这样的字符串:" xxxxxxx,yyyyyyy - zzzzzz" 有时恰好是" xxxxxxx - zzzzzz" x的长度可能会有所不同。 我想得到的,总是x字。 有一个简单的方法吗?
我的想法是: 通过字符串迭代,将每个我读过的字符都附加到字符串构建器上,直到我读取",",然后打破迭代,我得到了这个词,但这看起来很混乱。
所以也许有一种更简单的方法可以做到这一点。
答案 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.,;:]+