Dart replace curly braces from string with relative values - flutter

I got a couple of response from a json which includes curly braces such as ${title} or {title}
How can I replace these vaules with values I preselected?
For example:
jsonString = '{title}.2019.mkv'
jsonString2 = '${title}.2019.mkv'
How can I replace the field in those Strings with values I preselected like:
var title = 'Avengers'
Maybe I should just use regex or is there a better way?

In case you need to replace part of the string you can use
'{title}.2019.mkv'.replaceFirst('{title}', 'Avengers')
Link to documentation

Related

How can I get variable value from a text string?

I have a constants file with text values, for example:
const String loginIntro1 = "Login to account";
const String loginButton = "Login";
And I also have a Map containing similar info, for example:
{"loginIntro1":"Login to account","loginButton":"Login"}
The idea is that the Map (derived from a JSON file) takes precedence, but if the value doesn't exist, the constants value is used instead.
In my text widget, I want to grab the text by a method call, such as:
getText('loginIntro1');
Is this even possible? How can I get the value from the constants file with a String, rather than a direct reference to the variable? Perhaps I'm missing a much simpler way of achieving this!

Dart: How to force string interpolation on a variable

I have a variable that contains a string with interpolated variables. In the code below, that variable is template. When I pass this variable to generateString function, I want to apply string interpolation on it because the values which interpolated variables require are available in generateString function only.
void main() {
String template = '<p>\${name}</p>';
var res = generateString(template);
}
generateString(template) {
var name = 'abc';
print(template);
return template;
}
The problem is when I am printing and returning template inside generateString fn, I am getting <p>${name}</p> instead of <p>abc</p>. Is there a way to explicitly tell the dart to so string interpolation?
I am new to Dart. I don't know if it is even possible to achieve or not. Please suggest how do I do this.
Edit: Based on the inputs from other users, I would like to make a clarification about the scenario presented. The value of template variable is not a string literal. I get that from UI as a user input. I have shown it here as a string literal for code simplicity. Also, please consider that name and template are not in the same scope in my scenario.
The other answers so far are wrong.
String interpolation (looking for $, etc) happens only while compiling from the source code to the value in memory. If that string in turn also has a $, it's no longer special.
It's not possible to trigger interpolation past the original compilation step. You can write a templating system that would look for something like {{name}} in the value, and replace it with the current value of name.
If you have the template and the variable in the same scope, it works as expected.
// evaluate variable inside ${}
var sport = 'basketball';
String template = 'I like <p>${sport}</p>';
print(template);
I didn't fully understand your question maybe this will help
void main() {
print(generateString('abc')); //<p>abc</p>
}
generateString(String template) {
return r"<p>" "$template" r"</p>";
}
Walter White here.
You must define the variable name as global var, so it can "cook" the string for you

Make scala ignore multiple quotes in input

How do I make scala ignore the quotes inside of a String?
e.g.
val line1 = "<row Id="85" PostTypeId="1""
I want <row Id="85" PostTypeId="1" to be considered as a single string. However scala outputs error thinking that "<row Id=" is a string and everything after it is not related
Thanks in advance
val line1 = """<row Id="85" PostTypeId="1""""
Note those triple quotes ("""blahblah""") - to parse the string without escaping.

Xstream ignore whitespace characters

I load data from XML into java classes using xstream library. The texts in several tags are very long and take more than one line. Such formatting causes that I have in Java class field text with additional characters like \n\t. Is there any way to load data from XML file without these characters?
Xml tag is declared in two lines. Opening tag is in the first line, then I have very long text, and the closing tag is declared in second line.
You can use regex or the string split method.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Just split your string. In your case it would be
String wantedText = parts[0];
Another solution would be to put your values into a string array, loop the array, match and remove any characters you dont want.
You can see how to match and remove Here

Correct preg_replace format

What is the correct preg_replace format to replace everything (including the brackets) between (xxxxxx). Example have string (not long) link this: AAAAABBBBB (AAAAABBBBB) and all I want is AAAAABBBBB. I need to use preg_replace as the string and it's string length changes.
Thanks
Not sure if I understood your question right, but this should return the string insite the parentheses
$string = "CCCCC (AAAAABBBBB)";
return preg_replace("(.+\(|\))","",$string);
This regex will basically look for any string followed by ( and singular")" and replace them with "".