Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_Substring - Fatal编程技术网

Java 只需要在“-”之间拆分字符串

Java 只需要在“-”之间拆分字符串,java,string,substring,Java,String,Substring,嘿,我需要你帮我解开绳子。问题是我只需要在-。 例如: ABC_DEF-HIJ (KL MNOP_QRS) 我需要在string1中存储DEF,在string2中存储HIJ 其他一些格式是 AB (CDE)_FGH IJK/LMN-OPQ (RST 这里也是string1=LMN string2=OPQ 我只需要在-之后和之前的单词考虑使用正则表达式的这种方法: public static void main(String[] args) { Pattern p = Pattern

嘿,我需要你帮我解开绳子。问题是我只需要在-。 例如:

ABC_DEF-HIJ (KL MNOP_QRS)
我需要在string1中存储DEF,在string2中存储HIJ

其他一些格式是

AB (CDE)_FGH IJK/LMN-OPQ (RST
这里也是string1=LMN

string2=OPQ


我只需要在-

之后和之前的单词考虑使用正则表达式的这种方法:

public static void main(String[] args) {

    Pattern p = Pattern.compile("(\\w{3})-(\\w{3})");
    Matcher m = p.matcher("AB (CDE)_FGH IJK/LMN-OPQ (RST");
    if(m.find()) {
        System.out.println("1: " + m.group(1));
        System.out.println("2: " + m.group(2));
    }
}
产生

1: LMN
2: OPQ

如果单词长度超过3个字符,您可能希望将{3}改为+表示任何>=1的内容,因此基本上您需要先按-拆分,然后每边按一个非单词字符拆分

因此,您可以尝试:

String s = "ABC_DEF-HIJ (KL MNOP_QRS)";
String[] splits = s.split("-");  // {"ABC_DEF", "HIJ (KL MNOP_QRS)"}

String[] lefts = split[0].split("[^a-zA-Z]");  // {"ABC", "DEF"}
String[] rights = split[1].split("[^a-zA-Z]"); // {"HIJ", "", "KL", "MNOP", "QRS"}

String string1 = lefts[lefts.length - 1]; // "DEF""
String string2 = rights[0];               // "HIJ"
试试这个:

String[] parts = yourString.split("-");
//You can then access each part with: parts[index]
输出为:

ABC_DEF-HIJ (KL MNOP_QRS) ... string1 = [DEF] string2 = [HIJ]
AB (CDE)_FGH IJK/LMN-OPQ (RST ... string1 = [LMN] string2 = [OPQ]

你已经试着做什么了?你能显示你的代码吗?一些提示:使用indexOf-然后在两个方向上检查有多少个字母,直到出现一个非字母顺序的字母。然后你知道哪些字符与构建这两个字符串相关。哇,谢谢兄弟:D它就像一个符咒,正是我想要的:
ABC_DEF-HIJ (KL MNOP_QRS) ... string1 = [DEF] string2 = [HIJ]
AB (CDE)_FGH IJK/LMN-OPQ (RST ... string1 = [LMN] string2 = [OPQ]