How to convert a string mathematical expression into a BigInteger? [duplicate] - android

This question already has answers here:
How to evaluate a math expression given in string form?
(26 answers)
Closed 7 years ago.
A part of the goal in my app is to receive a mathematical expression (e.g. 1 + 1) by string, and convert it to a BigInteger.
My goal is to have an equivalent to:
BigInteger result = new BigInteger("1+1");
// This will throw an exception of invalid BigInteger
Also, ScriptEngineManager class isn't available for Android.
I still cannot find a way to achieve my goal.
Thanks a lot for helping!

You can try :
//If you have to parse only the result
String result = "2";
BigInteger.valueOf(Long.valueOf("2");
//If you have to parse the whole operation
String result = "1+1";
//create an algo to extract each 1 and determine operation
BigInteger bigIntUn = new BigInteger("1");
BigInteger bigIntAnotherUn = new BigInteger("1");
//you have add (+), min(-), multiply(*) (etc...)
bigIntUn.add(bigIntAnotherUn);

Related

How do I convert string builder to string array in Android? [duplicate]

This question already has answers here:
StringBuilder to Array of Strings how to convert
(2 answers)
Closed 6 years ago.
I have a string builder in Android which is filled with data from a database, and I want to display that data using a list view. For that I want to covert string builder into an array of strings. Can somebody help me in this conversion, or suggest to me some other technique.
Here you can find Link
tempArray = sb.toString().split("ABCABC"); will split the string and return an array of strings for each line.
Try this :
String sbString = sb.ToString();
String[] ary = "abc".split("TABTAB");

Comparing strings that use the substring method [duplicate]

This question already has answers here:
How do I compare strings in Java?
(23 answers)
Closed 8 years ago.
I hope somebody could give me an explaination why the below code wont work:
//Why doesnt this work
String l = myString.substring(cut, lengthLastBtn-1);
String c = myString.substring(cut, lengthLastBtn-1);
if(l==c){
Log.i(TAG, "Correct");
}
//End
//This work!
String l = "hi";
String c = "hi";
if(l==c){
Log.i(TAG, "Correct");
}
// End
// Or if i want the Vars as in the first code i have to use the if statement like this
if(l.contains(c)){
Log.i(TAG, "Correct");
}
//End
So, why cant a compare a string when i have used the substring method on it. I even see in the log for the strings that they are the same, or have the same text at least.
When you use the “==“ operator with String`s, it means a comparison between objects, not the value that objects hold.
In order to compare Strings values , you should use the built-in method equals. The result is true if the String object represents the same sequence of characters.
if(string1.equals(string2)) {
//Match
}

Converting String to Int in Android, JSON [duplicate]

This question already has answers here:
How do I convert a String to an int in Java?
(47 answers)
Closed 9 years ago.
Please give me an idea on how to compare values. I have a string budget_event, and budget and it is from my webserver. I think I should convert such strings into int and I need to compare those values with greater than and less than symbols. How can I implement these? Please give me some ideas. I'm new in these things.
Here's my code snippet in android. I need to convert the Budget and budget_event to int because they are strings. Any help will do. Thanks!
Budget = jsonObject.getString("budget");
totalcost.setText(Budget);
budget_event = budget.getText().toString();
You can use
int value = Integer.parseInt(Budget);
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String)
If Budget is not valid int, it throws a NumberFormatException.
try {
int value = Integer.parseInt(Budget);
}catch(NumberFormatException e) {
e.printStackTrace();
}
As simple as:
int i = Integer.parseInt(yourString);
Or, for floats:
float f = Float.parseFloat(yourString);
Pass your string value to parseInt() method of Integer class...you will get the converted value of the given string value.
int budget = Integer.parseInt(budget_event);
int budgetint = Integer.parseInt(budget);
if (budgetint <20)
...

Android if statement does not fire? [duplicate]

This question already has answers here:
How do I compare strings in Java?
(23 answers)
Closed 8 years ago.
Why does my "if" statement not fire?
String something = "";
String category = json_data.getString("den");
Log.e("JSON", "category="+category);
if (category == "1"){
something = "Random something";
}
Even if in my logcat I can see JSON:"category=1", the "something" String does not take "Random something" value.
This must be some convention in java?
Please help.
use:
if (category.equals("1")){
something = "Random something";
}
or better way to avoid null pointer exception:
if ("1".equals(category)){
something = "Random something";
}
Also have a look at this link for detail : How do I compare strings in Java?
You need to do string comparison in Java using the .equals method on the String object. The comparison you are doing is only comparing the references not the actual string values.
Example:
if(category.equals("1")){
//do amazing stuff
}

Formatting the String, Object C versus Java [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Inserting a Java string in another string without concatenation?
In Object C , the string formatting is like this
url = [NSString stringWithFormat:#"%#devices.json?user=%#&pswd=%#",server_name, user,password];
What about in Java for Android?
How does it handle that?
You can concatenate the strings or use String.format(String format, Object... args)
Concatenate
String url = server_name + "devices.json?user=" + user + "&pswd=" + password
Format
String url = String.format("%sdevices.json?user=%spswd=%s",server_name,user,password);
It is a matter of preference for which one you prefer.
Look up java.util.Formatter for a table that demonstrates other conversion types. %s is for string, %d for int ...

Categories

Resources