Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法使用拆分器或标记器在花括号内获取字符串_Java_String_Split_Stringtokenizer - Fatal编程技术网

Java 方法使用拆分器或标记器在花括号内获取字符串

Java 方法使用拆分器或标记器在花括号内获取字符串,java,string,split,stringtokenizer,Java,String,Split,Stringtokenizer,试图获取字符串的内部,我环顾四周,但找不到仅使用拆分器或标记器的解决方案 到目前为止,我正在这样做 String s = "author= {insert text here},"; 这给了我在这里插入文本}, 在数组[1]中,但我希望不附加} 也试过 arraySplitBracket = s.trim().split("\\{", 0); 但是它给了我author=作为输出。通过排除arraySplitBracket.length()-1处的字符来获取子字符串怎么样 差不多 String

试图获取字符串的内部,我环顾四周,但找不到仅使用拆分器或标记器的解决方案

到目前为止,我正在这样做

String s = "author= {insert text here},";
这给了我
在这里插入文本}
, 在数组[1]中,但我希望不附加
}

也试过

arraySplitBracket = s.trim().split("\\{", 0);

但是它给了我
author=
作为输出。

通过排除
arraySplitBracket.length()-1处的字符来获取子字符串怎么样

差不多

StringTokenizer st = new StringTokenizer(s, "\\{,\\},");

或者使用String类的replaceAll函数替换}

通过排除
arraySplitBracket.length()-1处的字符来获取子字符串怎么样

arraySplitBracket[1] = arraySplitBracket[1].substring(0,arraySplitBracket.length()-1);
差不多

StringTokenizer st = new StringTokenizer(s, "\\{,\\},");
或者使用String类的replaceAll函数替换}

您可以使用
\{([^}]*)\\}
Regex来获取花括号之间的字符串

arraySplitBracket[1] = arraySplitBracket[1].substring(0,arraySplitBracket.length()-1);
代码捕捉:

public static void main(String[] args) {
        String input="{a c df sdf TDUS^&%^7 }";     
        String regEx="(.*[{]{1})(.*)([}]{1})";
        Matcher matcher = Pattern.compile(regEx).matcher(input);            

        if(matcher.matches()) {         
            System.out.println(matcher.group(2));
        }
}
String str = "{insert text here}";
        Pattern p = Pattern.compile("\\{([^}]*)\\}");
        Matcher m = p.matcher(str);
        while (m.find()) {
          System.out.println(m.group(1));
        }
输出:

public static void main(String[] args) {
        String input="{a c df sdf TDUS^&%^7 }";     
        String regEx="(.*[{]{1})(.*)([}]{1})";
        Matcher matcher = Pattern.compile(regEx).matcher(input);            

        if(matcher.matches()) {         
            System.out.println(matcher.group(2));
        }
}
String str = "{insert text here}";
        Pattern p = Pattern.compile("\\{([^}]*)\\}");
        Matcher m = p.matcher(str);
        while (m.find()) {
          System.out.println(m.group(1));
        }
您可以使用
\{([^}]*)\\}
Regex来获取花括号之间的字符串

代码捕捉:

public static void main(String[] args) {
        String input="{a c df sdf TDUS^&%^7 }";     
        String regEx="(.*[{]{1})(.*)([}]{1})";
        Matcher matcher = Pattern.compile(regEx).matcher(input);            

        if(matcher.matches()) {         
            System.out.println(matcher.group(2));
        }
}
String str = "{insert text here}";
        Pattern p = Pattern.compile("\\{([^}]*)\\}");
        Matcher m = p.matcher(str);
        while (m.find()) {
          System.out.println(m.group(1));
        }
输出:

public static void main(String[] args) {
        String input="{a c df sdf TDUS^&%^7 }";     
        String regEx="(.*[{]{1})(.*)([}]{1})";
        Matcher matcher = Pattern.compile(regEx).matcher(input);            

        if(matcher.matches()) {         
            System.out.println(matcher.group(2));
        }
}
String str = "{insert text here}";
        Pattern p = Pattern.compile("\\{([^}]*)\\}");
        Matcher m = p.matcher(str);
        while (m.find()) {
          System.out.println(m.group(1));
        }

你能清楚地提到你的输入格式吗?
s
author
指的是同一个变量吗
author={insert text here},
在这里您有一个逗号,因此不清楚您分配给
author
的字符串的确切格式。编辑的问题可能重复您可以清楚地提到您的输入格式吗?
s
author
引用的是同一个变量吗
author={insert text here},
在这里,您有一个逗号,因此不清楚您分配给
author
的字符串的确切格式。编辑后的问题可能重复使用stringtokenizer或split?我觉得应该简单一点,;oSplit或StringTokenizer只能用于拆分分隔字符串。在这里,由于您的案例是一个用大括号括起来的字符串,我希望它可能没有帮助。因此,如果我使用拆分,唯一的方法是对该字符串进行子字符串并执行length()-2?arraySplitBracket[1]。子字符串(0,arraySplitBracket[1]。length()-2)这似乎有效。是的,正如您所说的,如果使用拆分,您必须获取子字符串,忽略结束卷曲括号split或StringTokenizer。两者都将仅在固定分隔符的情况下使用。如果使用,则必须从最后一个大括号中获取子字符串。是否有任何方法仅使用stringtokenizer或split?我觉得应该简单一点,;oSplit或StringTokenizer只能用于拆分分隔字符串。在这里,由于您的案例是一个用大括号括起来的字符串,我希望它可能没有帮助。因此,如果我使用拆分,唯一的方法是对该字符串进行子字符串并执行length()-2?arraySplitBracket[1]。子字符串(0,arraySplitBracket[1]。length()-2)这似乎有效。是的,正如您所说的,如果使用拆分,您必须获取子字符串,忽略结束卷曲括号split或StringTokenizer。两者都将仅在固定分隔符的情况下使用。如果你使用,你必须从最后一个大括号中取子字符串。你能详细解释正则表达式吗?你能详细解释正则表达式吗