0

我有这样的字符串:

This.is.a.great.place.too.work.

(或者)

This/is/a/great/place/too/work/

我想看看这个字符串是否有“地方”这个词。

如果它们是我使用的字符串中的单词 contains("place")。因为这是我尝试拆分的所有一个字符串,但它给出了语法错误。你能告诉我如何得到它吗?

string.contains("place") works
String.split(".").contains("place")   Error
4

7 回答 7

2

使用string.split("\\.").contains("place")它应该可以工作。.(dot)是正则表达式中的保留字符,您需要使用\\..

于 2012-09-06T06:10:16.377 回答
2

尝试用“//”分割。

    String string = "This.is.a.great.place.too.work.";
    System.out.println(string.split("\\.")[0]);
于 2012-09-06T06:11:42.630 回答
1

您可以使用

String str = "This.is.a.great.place.too.work.";
boolean exists = str.contains("place");

这将检查以查找字符串中的单词place,如果找到则返回 true,否则返回 false

于 2012-09-06T06:05:02.620 回答
1

试试这个

string.split(pattern);
String[] strings = s.split(".")

Split 将给出基于参数拆分的字符串数组。

您不能在字符串数组上应用包含,而是使用以下内容

boolean flag = string.contains("required_pattern");
于 2012-09-06T06:05:36.157 回答
1

您无需拆分字符串即可使用包含方法。

string str = "This.is.a.great.place.too.work.";

boolean found = str.contains("substring"); // should return true or false

替代方案您可以使用:

str.indexOf("substring") > 0判断子字符串是否在字符串中

要在一行中执行此操作,您可以执行以下操作:

Arrays.toString(str.split(".")).Contains("substring")
于 2012-09-06T06:09:14.020 回答
1

除了使用.contains我认为最好的方法之外,您似乎还想构建一个数据结构并通过它进行搜索。要执行此类操作,您需要执行以下操作:

String str = "This.is.a.great.place.too.work.";
String[] splitWords = str.split("\\.");  //The . is a special character in regex language, thus needs to be escaped. Alternatively you could use \\W which will split the string where ever it finds a character which is not a letter, digit or underscore.
List<String> words = Arrays.asList(splitWords);
System.out.println(words.contains("place"));

或者,您可以使用如下indexOf(String str)方法:

if (str.indexOf("place") > 0)
{
    System.out.println("String Exists");
}
于 2012-09-06T06:12:32.620 回答
1

像这样简单地尝试......

String s = "This/is/a/great/place/too/work/";
String ss = "This.is.a.great.place.too.work";

System.out.println(s.contains("place"));
System.out.println(ss.contains("place"));
于 2012-09-06T06:33:27.773 回答