0

我正在尝试保留双引号之间的所有句子并将它们放入数组 results[]

例如我可以有以下代码

public static void main (String[] args){

int i = 0 ;

System.out.println ( "words to be printed" );


}

在这个例子中,数组结果应该有一个字符串“要打印的单词”

我正在使用的技术是在新行 (\n) 上拆分并检查每个字符串是否包含双引号并将其放入结果中

我用于"your string here".split("\"")[1]提取引号之间的文本

问题是有些字符串有引号而有些没有。

我试过: if("your \"string\" here".split("\"")[1])->但是如果字符串中没有引号,则会出现异常如何检查字符串是否有引号?

4

5 回答 5

2

这是使用正则表达式匹配". 所以像这样的一行

"myWord" and somewhere else "myOther words" 

应该输出

myWord
myOther words

括号匹配的示例代码:

Pattern pattern = Pattern.compile("\"(.*?)\"");
for (String line: myLines){
    Matcher matcher = pattern.matcher(line);
    while (matcher.find()){
        System.out.println("found match '"+matcher.group(1)+"'");
    }
}

如果您只想匹配一行,请忽略 for 循环,只匹配一个输入。

于 2013-06-10T20:01:52.980 回答
1

使用 MyString.contains("\"") 检查是否存在双引号。如果存在,请使用 split 就像你说的那样。如果不存在,请让 yourString = "\""+youtString; 然后使用 split

于 2013-06-10T20:01:18.977 回答
1

如果您的字符串有两个双引号,则 split("\"") 将分成三部分。因此您可以进行这样的检查(如果预期不超过一对双引号):

String[] s = input.split( "\"" );
if( s.length > 2 )
  System.out.println( s[ 1 ] );
于 2013-06-10T20:03:52.377 回答
0

这是您可以检查字符串是否有引号的方法

      if (yourText.contains("\"")){
    //do something
       }
于 2013-06-10T20:02:00.273 回答
0

而不是使用拆分\n(如果您使用的是 java 1.7)

String newLine = System.getProperty("line.separator");

然后使用"your string here".split(newLine). 希望这有帮助。

于 2013-06-10T20:10:07.020 回答