I have been trying to construct a while loop for looping through a string when it contains a 'pattern' i'm looking for. The string is a local variable, declared just above the while loop and I am unable to substring it within my while loop, so that each consecutive loop will look at the next part of the string.
I would appreciate any help on how I could solve this problem
Here's the code; just so u have the idea the onlineList usually comes as array list output eg [Adrian, Bob, Buddy]
String onlineList = networkInput.nextLine();
//Declare a local variable for modified online list, that will replace all the strings that contain ", " "[" and "]"
String modifiedOnlineList = onlineList.replaceAll("\\, ", "\n").replaceAll("\\[", "").replaceAll("\\]", "");
//Loop the modifiedOnlineList string until it contains "\n"
while (modifiedOnlineList.contains("\n")) {
//A local temporary variable for the first occurence of "\n" in the modifiedOnlineList
int tempFirstOccurence = modifiedOnlineList.indexOf("\n");
//Obtain the name of the currently looped user
String tempOnlineUserName = modifiedOnlineList.substring(0, tempFirstOccurence);
//Substring the remaining part of the string.
modifiedOnlineList.substring(tempFirstOccurence + 2);
System.out.println(modifiedOnlineList);
}
String is immutable in java
modifiedOnlineList = modifiedOnlineList.substring(tempFirstOccurence + 2);
You have to receive the new String
Object returned by substring
method.
modifiedOnlineList.substring(tempFirstOccurence + 2);
System.out.println(modifiedOnlineList); // still old value
when you receive that
modifiedOnlineList = modifiedOnlineList.substring(tempFirstOccurence + 2);
System.out.println(modifiedOnlineList); // now re assigned to substring value
Strings are immutable. That means that substring
does not modify the string itself, but returns a new string object. So you should use:
modifiedOnlineList = modifiedOnlineList.substring(tempFirstOccurence + 2);
modifiedOnlineList.substring()仅返回原始modifiedOnlineList的子字符串,它不会修改modifiedOnlineList。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.