Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Substring - Fatal编程技术网

Java 拆分字符串并将特定字符串提取到数组

Java 拆分字符串并将特定字符串提取到数组,java,arrays,substring,Java,Arrays,Substring,我有一个字符串“S”。只有单引号中的子字符串必须分配给字符串数组。它可能不是必需的。备用字在单引号中 String S = "Username 'user1' Username2 'user2' Usermane3 'user3' 'user4'"; 它必须按如下方式分配(仅带单引号的子字符串) 我试过的 String s1 = S.replace(System.getProperty("line.separator"), " ");

我有一个字符串“S”。只有单引号中的子字符串必须分配给字符串数组。它可能不是必需的。备用字在单引号中

String S = "Username 'user1'
             Username2 'user2'
             Usermane3 'user3' 'user4'";
它必须按如下方式分配(仅带单引号的子字符串)

我试过的

 String s1 = S.replace(System.getProperty("line.separator"), " ");
   //replacing newline with single space
 String Username[] = s1.split(" ");
  //separating string into sub-string
 Username[]={Username,'user1',Username2,'user2',Username3, 'user3','user4'};

您可以使用分隔符分割输入,并获取备用字符串

String S = "Username 'user1' Username2 'user2 user21' Usermane3 'user3'";
String[] tokens = S.split("'");//use delimiter as ' to get the value inside the quote
String[] usernames = new String[tokens.length / 2];
for (int i = 1, k = 0; i < tokens.length; i += 2) {
    System.out.println(tokens[i]);
    usernames[k++] = tokens[i];
}
您可以使用逻辑仅获取引号中的字符串,如下所示

String S = "Username 'user1' Username2 'user2' Usermane3 'user3' 'user4'";
ArrayList<String> words = new ArrayList();
String word = "";
boolean startQuote = false;
for (int i = 0; i < S.length(); ++i) {
    char ch = S.charAt(i);
    if (ch == '\'') {
        if (word.equals(""))
            startQuote = true;
        else {
            words.add(word);
            word = "";
            startQuote = false;
            }
        }
    else if (startQuote) {
        word += ch;
    }
}
System.out.println(words);
String S=“Username'user1'Username2'user2'Usermane3'user3'user4';
ArrayList words=新的ArrayList();
字串=”;
布尔startQuote=false;
对于(int i=0;i
您可以使用分隔符拆分输入,并获取备用字符串

String S = "Username 'user1' Username2 'user2 user21' Usermane3 'user3'";
String[] tokens = S.split("'");//use delimiter as ' to get the value inside the quote
String[] usernames = new String[tokens.length / 2];
for (int i = 1, k = 0; i < tokens.length; i += 2) {
    System.out.println(tokens[i]);
    usernames[k++] = tokens[i];
}
您可以使用逻辑仅获取引号中的字符串,如下所示

String S = "Username 'user1' Username2 'user2' Usermane3 'user3' 'user4'";
ArrayList<String> words = new ArrayList();
String word = "";
boolean startQuote = false;
for (int i = 0; i < S.length(); ++i) {
    char ch = S.charAt(i);
    if (ch == '\'') {
        if (word.equals(""))
            startQuote = true;
        else {
            words.add(word);
            word = "";
            startQuote = false;
            }
        }
    else if (startQuote) {
        word += ch;
    }
}
System.out.println(words);
String S=“Username'user1'Username2'user2'Usermane3'user3'user4';
ArrayList words=新的ArrayList();
字串=”;
布尔startQuote=false;
对于(int i=0;i
这将按照@Uma Kanth版本中的描述漂亮地打印数组。如果你需要的话

System.out.print(“用户名=[”);
for(int i=0;i
这将按照@Uma Kanth版本中的描述漂亮地打印数组。如果你需要的话

System.out.print(“用户名=[”);
for(int i=0;i
很多答案正在进行中..顺便说一句,你到目前为止尝试了什么?一个简单的google查询“如何在java中拆分字符串”给了我一个指向so post@LBesacon的链接我正在寻找解决方案,以单引号提取子字符串,而不是查看如何拆分。很多答案正在进行..顺便说一句,你到目前为止尝试了什么?一个简单的google查询“如何在java中拆分字符串”为我提供了指向SO post@LBesacon的链接,我正在寻找以单引号提取子字符串的解决方案,而不是寻找如何拆分的解决方案。谢谢,但我正在寻找以单引号提取子字符串的解决方案。(不必选择单引号中的子字符串)。问题中未指定。我将更新我的答案亲爱的,我更新了我的问题…@Ravichandra我更新了我的答案。请检查。@Ravichandra我添加了几个更详细的版本以接受所有其他情况。请查看。谢谢,但我正在寻找用单引号提取子字符串的解决方案。(其不必要的替换词在单引号子字符串中)。这不是问题中指定的。我将更新我的答案亲爱的,我更新了我的问题…@Ravichandra我更新了我的答案,请检查。@Ravichandra我添加了几个更详细的版本以接受所有其他情况。请看一看。但这不是我问题的答案。你可以使用System.out.println(Arrays.toString(用户名))代替上面的所有内容;谢谢@Ravichandra我不知道那个把戏!但这并不能解决我的问题。你可以使用System.out.println(Arrays.toString(usernames));谢谢@Ravichandra我不知道那个把戏!