I have the following code in Objective-C:
NSString *someString = #"Hello World";
I need a Swift Code with the following output: \"Hello World\"
Including the double checkmarks and the backslash.
According to your comment, you'll need this:
var mySuperFancyDynamicString: String = "whaaaazzuppp"
let someString: String = "\\\"\(mySuperFancyDynamicString)\\\""
print(someString)
print is \"whaaaazzuppp\" (well... was Hello World, before the edit)
Or to your "text box" Comment:
var mySuperFancyDynamicString: String = textBox.text
let someString: String = "\\\"\(mySuperFancyDynamicString)\\\""
print(someString)
Print will be : \"textBoxContent\"
Apparently you want to convert from Objective-c to swift, if yes then don't add backslash to your double quotes, String in swift are just double quoted text.
You should end with
someString = "Hello World"
If You don't want to convert to swift then what are you doing ? Cause the code you are providing (NSString *someString = #\"Hello World\";) will throw an error.
EDIT :
If you really need that specific output, you must create a string like that :
someString = "\\\"Hello World\\\""
Related
How can I join two strings in a directory path?
E.g.
Image.Image = Image.FromFile("MY STRING\image.png")
The MYSTRING variable contains a string.
You should use Path.Combine() when dealing with string paths, You can do this as follows:
Image.Image = Image.FromFile(Path.Combine(MYSTRING, "image.png"))
There are a number of ways to concatenate Strings:
As you have a white space in MY STRING, I'm guessing it's a literal String.
Try one of these:
If MY STRING is a literal String:
Plus Operator
Image.Image = Image.FromFile("MY STRING" + "\image.png")
String.Concat
Image.Image = Image.FromFile(String.Concat("MY STRING", "\image.png"))
If MYSTRING is a variable:
Plus Operator
Image.Image = Image.FromFile(MYSTRING + "\image.png")
String.Concat
Image.Image = Image.FromFile(String.Concat(MYSTRING, "\image.png"))
Please see:
https://www.dotnetperls.com/string-concat-vbnet
I'm making like a "mini programming language" in visual basic.
Mostly just for practice and for fun.
I just have one problem. I want to make a commenting system.
I got an idea how it would work, but i don't know how to do it.
So this is what i want to do:
I want to start to select all text from //
So for example, if i write:
print = "Hello World!"; //This is a comment!
it will select everything from the // so it will select
//This is a comment!
Then i would just replace the selected text with nothing.
You can use String.IndexOf + Substring:
Dim code = "Dim print = ""Hello World!""; //This is a comment!"
Dim indexOfComment = code.IndexOf("//")
Dim comment As String = Nothing
If indexOfComment >= 0 Then comment = code.Substring(indexOfComment)
If you want the part before the comment dont use String.Replace but also Substring or Remove:
code.Substring(0, indexOfComment)
//string
NSString *haystack = #".test {test:test} .test2{dasf:asdF}";
//pattern
NSString *needle = #"[^{}]*{[^{}]*}";
What I want from this is .test {test:test} and .test2{dasf:asdF} in an array (rest of the code handles this) but for some reason this regexp is not working correctly because no results are found.
If
NSString *needle = #"[^{}]*";
I get the following
(
".test ",
"",
"test:test",
"",
" .test2",
"",
"dasf:asdF",
"",
""
)
which is expected. After a lot of fiddling it seems to be a problem with { and } in the regex but I can't think why.
Incidently, if anyone can explain why I get these empty elements in the array above that would be useful to know as well.
Thanks!
Did you try [^{}]+ (with plus) instead of [^{}]*? Just because * matches also zero chars
Would you try using:
NSString *needle = #"[^{}]*\{[^{}]*\}";
indeed, { and } have special meaning in regexs (but they are sort of "automatically" escaped when used within [])
I'm new to C and need to solve what I'm sure is a very simple problem. How do I add a reassignment to append for a newline in Objective C. The hint given was append #"\n". I want my output to appear on a new line. My code is below:
- (IBAction)displaySomeText: (id)sender
{
WonderfulNumber *myWonderfulNumber = [WonderfulNumber wonderfulNumberWithFloat:pi];
NSString *stringToOutput = #"The value is: ";
stringToOutput = [stringToOutput stringByAppendingString:[myWonderfulNumber storedNumberAsString]];
[textView insertText:stringToOutput];
}
Please help
stringToOutput = [stringToOutput stringByAppendingFormat: #"\n%#",[myWonderfulNumber storedNumberAsString]];
I need to filter out characters like /?-^%{}[];$=*`#|&#'\"<>()+,\. I need replace this with empty string if it is there in the query string. Please help me out. I am using this in ASP pages.
Best idea would be to use a function something along the lines of:
Public Function MakeSQLSafe(ByVal sql As String) As String
'first i'd avoid putting quote chars in as they might be valid? just double them up.
Dim strIllegalChars As String = "/?-^%{}[];$=*`#|&#\<>()+,\"
'replace single quotes with double so they don't cause escape character
If sql.Contains("'") Then
sql = sql.Replace("'", "''")
End If
'need to double up double quotes from what I remember to get them through
If sql.Contains("""") Then
sql = sql.Replace("""", """""")
End If
'remove illegal chars
For Each c As Char In strIllegalChars
If sql.Contains(c.ToString) Then
sql = sql.Replace(c.ToString, "")
End If
Next
Return sql
End Function
This hasn't been tested and it could probably be made more efficient, but it should get you going. Wherever you execute your sql in your app, just wrap the sql in this function to clean the string before execution:
ExecuteSQL(MakeSQLSafe(strSQL))
Hope that helps
As with any string sanitisation, you're much better off working with a whitelist that dictates which characters are allowed, rather than a blacklist of characters that aren't.
This question about filtering HTML tags resulted in an accepted answer suggesting the use of a regular expression to match against a whitelist: How do I filter all HTML tags except a certain whitelist? - I suggest you do something very similar.
I'm using URL Routing and I found this works well, pass each part of your URL to this function. It's more than you need as it converts characters like "&" to "and", but you can modify it to suit:
public static string CleanUrl(this string urlpart) {
// convert accented characters to regular ones
string cleaned = urlpart.Trim().anglicized();
// do some pretty conversions
cleaned = Regex.Replace(cleaned, " ", "-");
cleaned = Regex.Replace(cleaned, "#", "no.");
cleaned = Regex.Replace(cleaned, "&", "and");
cleaned = Regex.Replace(cleaned, "%", "percent");
cleaned = Regex.Replace(cleaned, "#", "at");
// strip all illegal characters like punctuation
cleaned = Regex.Replace(cleaned, "[^A-Za-z0-9- ]", "");
// convert spaces to dashes
cleaned = Regex.Replace(cleaned, " +", "-");
// If we're left with nothing after everything is stripped and cleaned
if (cleaned.Length == 0)
cleaned = "no-description";
// return lowercased string
return cleaned.ToLower();
}
// Convert accented characters to standardized ones
private static string anglicized(this string urlpart) {
string beforeConversion = "àÀâÂäÄáÁéÉèÈêÊëËìÌîÎïÏòÒôÔöÖùÙûÛüÜçÇ’ñ";
string afterConversion = "aAaAaAaAeEeEeEeEiIiIiIoOoOoOuUuUuUcC'n";
string cleaned = urlpart;
for (int i = 0; i < beforeConversion.Length; i++) {
cleaned = Regex.Replace(urlpart, afterConversion[i].ToString(), afterConversion[i].ToString());
}
return cleaned;
// Spanish : ÁÉÍÑÓÚÜ¡¿áéíñóúü"
}