我试图保留双引号之间的所有句子并将它们放在数组结果[]
中例如我可以有以下代码
public static void main (String[] args){
int i = 0 ;
System.out.println ( "words to be printed" );
}
在此示例中,数组结果应该有一个字符串“要打印的单词”
我正在使用的技术是拆分新行(\ n)并检查每个String是否包含双引号并将其放入结果中
我使用"your string here".split("\"")[1]
来提取引号
问题是有些字符串有引号而有些则不引用。
我试过了:
if("your \"string\" here".split("\"")[1])
- >但如果字符串中没有引号,则会出现异常
如何检查字符串是否有引号?
答案 0 :(得分:2)
这是使用正则表达式匹配"
之间的所有内容的合适时间。所以像这样的一行
"myWord" and somewhere else "myOther words"
应输出
myWord
myOther words
paren匹配的示例代码:
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循环,只匹配一个输入。
答案 1 :(得分:1)
使用MyString.contains(“\”“)检查是否存在双引号。 如果存在,你就像你说的那样使用拆分。 如果不存在make yourString =“\”“+ youtString;并在之后使用split
答案 2 :(得分:1)
如果你的字符串有两个双引号,那么split(“\”“)将分成三段。所以你可以这样检查(如果预期不超过一个双引号对):
String[] s = input.split( "\"" );
if( s.length > 2 )
System.out.println( s[ 1 ] );
答案 3 :(得分:0)
这是你如何检查字符串是否有引号
的方法 if (yourText.contains("\"")){
//do something
}
答案 4 :(得分:0)
而不是按\n
分割使用(如果你使用的是java 1.7)
String newLine = System.getProperty("line.separator");
然后使用"your string here".split(newLine)
。希望这有帮助。