how to replace space with %20 in java - android

I have a string which contains space like this
https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_e872fd49-0dab-4502-8689-d126b9552334/Sales Force Technologies/360/SMC_C1_M1_Agile_Overview_and_need_for_Agile.mp4?
How to replace spaces in this string with %20 so that it should display
Sales%20Force%20Technologies
I want to replace only space not other special characters.

Use the String.replaceAll() method.
String newUrlString = urlString.replaceAll(" ", "%20");
Beware though that the first parameter is a regex expression, so if you want to split with a . (or any special regex char for that matter) you would have to do this \.

Related

How to remove spaces in Android string resource caused by XML newline?

I have a very long string in my Android project, so I split it across multiple lines:
<string name="my_str">
AAAAAAAAAAA
BBBBBBBBBBB
</string>
When I use this string, I get AAAAAAAAAAA BBBBBBBBBBB. Is there a way to get rid of the space in the middle? (I want AAAAAAAAAAABBBBBBBBBBB)
Obviously I could put the entire string on one line, but that's not very maintainable.
Edit: The string (AAA...BBB) can contain spaces; I only want to remove the spaces created by the newline in the XML.
To remove all whitespaces and non-visible characters (e.g. tab, newline,..):
mystring.replaceAll("\\s+", "");
or to remove new-lines
mystring.replaceAll("\n","");
So remove all white spaces from beginning and from end:
myString = myString.replaceAll("^\\s+","").replaceAll("\\s+$","");
Check out the documentation: ^ is for beginning, $ for end. \s means any white space like tabs, spaces, etc.
myString = myString.replaceAll(" ","");
Remove white space in string array
It's very simple to remove from white space in string array.
for example:-
String rahul = 12, 13, 14, 15, 16
Solution :
rahul.trim().replaceAll("\\s","");
output is : 12,13,14,15,16

Converting a text file into String array with regular expression

I have a .txt file which contains above 1000 words
sample city names below
Razvilka
Moscow
Firozpur Jhirka
Kathmandu
Kiev
Pokhara
Merida
Delhi
Reshetnikovo
Ciudad Bolivar
Marfino
Zhukovskiy
Reutov
Kurovskoye
etc
I would like to have these words in this format below
"Razvilka","Moscow","etc","etc"
enclosed with double quotation and with a comma in the end.I am using Notepad++.Could you mention how to do it and which software should I use it?
If you're using Notepad++, make a Search and Replace replacing
\b(\w+)\b
with
"$1",
It'll find all words and replace with them self, surrounded by quotes. You'll have to manually remove the last , if that's unwanted.
Regards
I wonder if this question is about programming, but You tagged android, regex and android studio, so I guess it is. If yes, You can simply split a string in that way:
String[] splitted = yourString.split("\\s+");
In that case, You are splitting the strings by whitespaces (this regex is also for more than one whitespace), like Your string seems to be. If You have more than one delimiter, You can do it by using the OR operator |
String[]splitted = yourString.split("-|\\.");
In that example, You are splitting the String by - and . (minus and point). The delimiter is the sign where the String is splitted by.

Android How to Remove( " )Character from String

I wanted to to Remove ( " ) Character from String
This is my text
"69452;6486699"
I need to Have This Text
69452;6486699
I've tryed to use String.Replace
text = text.replace(""","");
and does not work
Also I've Use This Way
text = text.replace("/"","");
But Not Again
Any One Can Help me ?!
use this code
text.replace("\"", "");
Backslash () is used for escaping special characters, forward slash (/) is just a regular character with no special meaning in the string.
Wrong slash. Do it with a backslash:
text = text.replace("\"", "");
It's
text = text.replace("\"", "");
Backslash (\) is used for escaping special characters, forward slash (/) is just a regular character with no special meaning.
You need to try like this
text = text.replace("\"", "");
Look into String.replace()

Using a question mark as a String in android

Im trying to use a question mark as a variable for a string.
I've tried...
strings.xml
<string name="questionMark">\?</string>
.class
String questionMark;
questionMark = getResources().getString(R.string.questionMark);
String delim4 = (questionMark);
This causes a fource close regex error.
and
String delim4 = (\?);
This gets an error Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \ )
and also
I've tried putting 2 backslashes in front of it
String delim4 =(\\?)
System.out.println("delim "+ delim4);
But that just escapes the second slash and sometimes force closes as well.
the output for that was
delim \?
Can any tell me how to put in the question mark as the string. I'm using it as variable to spit a string. The String Im splitting can not be changed.
plz help
Edit added split code
if (FinishedUrl.contains(questionMark)){
String delim3 = (".com/");
String[] parts3 = FinishedUrl.split(delim3);
String JUNK3= parts3[0];
String fIdStpOne = parts3[1];
String fIdStpTwo = fIdStpOne.replaceAll("=#!/","");
String delim4 = (questionMark);
String[] parts4 = fIdStpTwo.split(delim4);
String fIdStpThree= parts3[0];
String JUNK4 = parts3[1];
FId = fIdStpThree;
}
As pointed out by user laalto, ? is a meta-character in regex. You must work around that.
Let's see what's happening here. Firstly, some ground rules:
`?` is not a special character in Java
`?` is a reserved character in regex
This entails:
String test = "?"; // Valid statement in java, but illegal when used as a regex
String test = "\?"; // Illegal use of escape character
Why is the second statement wrong? Because we are trying to escape a character that isn't special (in Java). Okay, we'll get back to this.
Now, for the split(String) method, we need to escape the ? - it being a meta-character in regex. So, we need \? for the regex.
Coming back to the string, how do we get \?? We need to escape the \(backslash) - not the question mark!
Here's the workflow:
String delim4 = "\\?";
This statement gives us \? - it escapes the \(backslash).
String[] parts4 = fIdStpTwo.split(delim4);
This lets us use \? as a regex in the split() method. Since delim4 is being passed as a regex, \? is used as ?. Here, the prefix \ is used to escape ?.
Your observations:
String delim4 = (\?);
This gets an error Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \ )
I covered this above. You are escaping ? at the java level - but it isn't a special character and needs no escaping - hence the error.
String delim4 =(\\?)
System.out.println("delim "+ delim4);
But that just escapes the second slash and sometimes force closes as well. the output for that was
delim \?
This is what we want. It is easier to think of this as a two stage process. The first stage deals with successfully placing a \(backslash) in front of the ?. In the second stage, regex finds that the ? has been prefixed by a \ and uses ? as a literal instead of a meta-character.
And here's how you can place the regex in your res/values/strings.xml:
<string name="questionMark">\\?</string>
By the way, there's another option - not something I use on a regular basis these days - split() works just fine.
You can use StringTokenizer which works with delimiters instead of regex. Afaik, any literal can be used as a delimiter. So, you can use ? directly:
StringTokenizer st = new StringTokenizer(stringToSplit, "?");
while (st.hasMoreTokens()) {
// Use tokens
String token = st.nextToken();
}
Easiest way is to quote or backslash them:
<string name="random">"?"</string>
<string name="random">\?</string>
The final code.
String startDelim = ("\\?");
String realDelim = (startDelim);
String[] parts4 = fIdStpOne.split(realDelim);
String fIdStpTwo= parts4[0];
String JUNK4 = parts4[1];
Normally you'd just put it literally, like
String q = "?";
However, you say you're using it to split a string. split() takes a regular expression and ? is a metacharacter in a regex. To escape it, add a backslash in front. Backslash is a special character in Java string literals so it needs to be escaped, too:
String q = "\\?";

String .replace is not working in Android

String s1=s.replace('"', '\"');
here i want to replace " with \"
Try String s1 = s.replace("\"", "\\\"");
Explanation:
When referencing a quote or backslash in a string, i.e. anything inside double quotes, a \ is required to state that you want the quote to appear within the quotes, not end the quotes. Does this make sense?
For example, you would write String message = "She said \"Hello\" the other day.", so that the backslashes represent that the quotes don't actually end the whole string, but are rather to be part of the string.
String s1=s.replace("\"", "\\\"");
It will replace all " by \".

Categories

Resources