拆分字符串并将特定字符串提取到数组
Splitting a string and extracting specific strings to array
我有一个字符串 "S"。只有单引号中的子字符串必须分配给一个字符串 Array.Its 可能没有必要在单引号中替换单词。
String S = "Username 'user1'
Username2 'user2'
Usermane3 'user3' 'user4'";
必须如下赋值(仅限带单引号的子串)
String Username[] ={'user','user1','user2','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];
}
如果没有规定单人Username
会有单人user1
喜欢
String S = "Username 'user1' Username2 'user2' Usermane3 'user3' 'user4'";
您可以使用逻辑仅获取引号中的字符串,如下所示。
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);
这将按照@Uma Kanth 的版本中的描述漂亮地打印数组。如果你需要的话。
System.out.print("usernames = [");
for (int i = 0; i < usernames.length; i++) {
String username = usernames[i];
System.out.print(username);
if (i < usernames.length - 1) {
System.out.print(", ");
}
}
System.out.println("]");
我有一个字符串 "S"。只有单引号中的子字符串必须分配给一个字符串 Array.Its 可能没有必要在单引号中替换单词。
String S = "Username 'user1'
Username2 'user2'
Usermane3 'user3' 'user4'";
必须如下赋值(仅限带单引号的子串)
String Username[] ={'user','user1','user2','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];
}
如果没有规定单人Username
会有单人user1
喜欢
String S = "Username 'user1' Username2 'user2' Usermane3 'user3' 'user4'";
您可以使用逻辑仅获取引号中的字符串,如下所示。
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);
这将按照@Uma Kanth 的版本中的描述漂亮地打印数组。如果你需要的话。
System.out.print("usernames = [");
for (int i = 0; i < usernames.length; i++) {
String username = usernames[i];
System.out.print(username);
if (i < usernames.length - 1) {
System.out.print(", ");
}
}
System.out.println("]");