This question already has answers here:
Java String replace not working [duplicate]
(6 answers)
Closed 9 years ago.
I tried to replace "-" character in a Java String but is doesn't work :
str.replace("\u2014", "");
Could you help me ?
String is Immutable in Java. You have to reassign it to get the result back:
String str ="your string with dashesh";
str= str.replace("\u2014", "");
See the API for details.
this simply works..
String str = "String-with-dash-";
str=str.replace("-", "");
System.out.println(str);
output - Stringwithdash
It's quite easy. You can use an Apache library, that will be useful while you develop an application. This is apache-commons-lang. You can do the following:
public class Main {
public static void main(String[] args) {
String test = "Dash - string";
String withoutDash = StringUtils.replace(test, "-", "");
System.out.println(withoutDash);
}
}
Related
This question already has answers here:
How do I split a string in Java?
(39 answers)
Closed 2 years ago.
I have a string like this.
PER*IP**TE**1234567890*EM*sampleEmail#Email.com
How can I parse the string into multiple lines like this in Java?
PER
IP
TE
//Empty String
EM
1234567890
sampleEmail#Email.com
You could use a regex replacement:
String input = "PER*IP**TE*1234567890*EM*sampleEmail#Email.com";
String output = input.replaceAll("\\*", "\n");
System.out.println(output);
This prints:
PER
IP
TE
1234567890
EM
sampleEmail#Email.com
You can use String#split. Since * is a regular expression metacharacter, you need to escape it with a backslash or use Pattern#quote.
Arrays.stream("PER*IP**TE**1234567890*EM*sampleEmail#Email.com".split(Pattern.quote("*")))
.forEach(System.out::println);
String newstring = string.replace("*", "\n");
System.out.println(newstring);
now if you don't want that the empty line show up, use this:
String string = "PER*IP**TE**1234567890*EM*sampleEmail#Email.com"
String newstring = string.replaceAll("\\*+","*").replace("*", "\n");
System.out.println(newstring);
This question already has answers here:
Java Replacing multiple different substring in a string at once (or in the most efficient way)
(11 answers)
Closed 6 years ago.
Example:
String originalString = "This is just a string folks";
I want to remove(or replace them with "") : 1. "This is" , 2. "folks"
Desired output :
finalString = "just a string";
For a sole substring it's easy, we can just use replace/replaceAll.
I also know it works for various numeric values replace("[0-9]","")
But can that be done for characters?
You can create a function like below:
String replaceMultiple (String baseString, String ... replaceParts) {
for (String s : replaceParts) {
baseString = baseString.replaceAll(s, "");
}
return baseString;
}
And call it like:
String finalString = replaceMultiple("This is just a string folks", "This is", "folks");
You can pass multiple strings that are to be replaced after the first parameter.
It works like this:
String originalString = "This is just a string folks";
originalString = originalString.replace("This is", "");
originalString = originalString.replace("folks", "");
//originalString is now finalString
This question already has answers here:
Splitting a Java String by the pipe symbol using split("|")
(7 answers)
Closed 8 years ago.
I have tried split with some other texts, its working fine there but not here. Can someone tell me what I did wrong here?
private static String fileName = "jjjj.txt";
private static String userName = "xxxx";
private static String password = "yyyy";
public static void main(String args[]){
String info = "UserName" +"|"+ userName + "|" + password + "|" + fileName;
String tempStr[] = info.split("|");
System.out.println(tempStr[0]);
System.out.println(tempStr[1]);
System.out.println(tempStr[2]);
System.out.println(tempStr[3]);
}
I am getting output as :
U
s
e
What should I do to get the output as:
UserName
xxxx
yyyy
jjjj.txt
You have to escape the | in your regular expression. This should work:
String tempStr[] = info.split("\\|");
This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Can you recommend a Java library for reading (and possibly writing) CSV files?
I need to split the String in Java. The separator is the space character.
String may include the paired quotation marks (with some text and spaces inside) - the whole body inside the paired quotation marks should be considered as the single token.
Example:
Input:
token1 "token 2" token3
Output: array of 3 elements:
token1
token 2
token3
How to do it?
Thanks!
Split twice. First on quotes, then on spaces.
Assuming that the other solutions will not work for you, because they do not properly detect matching quotes or ignore spaces within quoted text, try something like:
private void addTokens(String tokenString, List<String> result) {
String[] tokens = tokenString.split("[\\r\\n\\t ]+");
for (String token : tokens) {
result.add(token);
}
}
List<String> result = new ArrayList<String>();
while (input.contains("\"")) {
String prefixTokens = input.substring(0, input.indexOf("\""));
input = input.substring(input.indexOf("\"") + 1);
String literalToken = input.substring(0, input.indexOf("\""));
input.substring(input.indexOf("\"") + 1);
addTokens(prefixTokens, result);
result.add(literalToken);
}
addTokens(input, result);
Note that this won't handle unbalanced quotes, escaped quotes, or other cases of erroneous/malformed input.
import java.util.StringTokenizer;
class STDemo {
static String in = "token1;token2;token3"
public static void main(String args[]) {
StringTokenizer st = new StringTokenizer(in, ";");
while(st.hasMoreTokens()) {
String val = st.nextToken();
System.out.println(val);
}
}
}
this is easy way to string tokenize
This question already has answers here:
String replace a Backslash
(8 answers)
Closed 6 years ago.
In java, I have a file path, like 'C:\A\B\C', I want it changed to ''C:/A/B/C'. how to replace the backslashes?
String text = "C:\\A\\B\\C";
String newString = text.replace("\\", "/");
System.out.println(newString);
Since you asked for a regular expression, you'll have to escape the '\' character several times:
String path = "c:\\A\\B\\C";
System.out.println(path.replaceAll("\\\\", "/"));
You can do this using the String.replace method:
public static void main(String[] args) {
String foo = "C:\\foo\\bar";
String newfoo = foo.replace("\\", "/");
System.out.println(newfoo);
}
String oldPath = "C:\\A\\B\\C";
String newPath = oldPath.replace('\\', '/');
To replace all occurrences of a given character :
String result = candidate.replace( '\\', '/' );
Regards,
Cyril