Allowed coercions
Syntaxset myString to "Good old string" as string DescriptionAppleScript strings are like strings in other languages (arrays of characters), except that they have to be surrounded by double quotation marks; you do not have the option of using single quotation marks. You can get the number of characters in a string, including spaces, by using a string's length property: length of myString AppleScript strings have the following built-in elements:
ExamplesThe statement: words of myString or: every word of myString will return a list of strings containing each of the words in the original string ({"Good","old","string"}). This is handy if your script wants to examine or otherwise process each of the words in a string. The same goes for the other elements; characters of myString returns a list of strings, with each item in the list being a single-character string ({"G", "o", "o", "d", " ", "o", "l", "d", " ", "s", "t", "r", "i", "n", "g"}). The following example iterates through this list and returns the number of non-space characters in the string. Items in lists are one-based, meaning that the first character in a string is character 1. These statements would make a nice subroutine for a string-handling library: set myString to "Good old string" set noSpaceCharCount to 0 repeat with c from 1 to (length of myString) (*space is a string constant representing a space character *) if not (character c of myString is space) then set noSpaceCharCount to noSpaceCharCount + 1 end if end repeat get noSpaceCharCount The text element of a string allows you to grab ranges of characters in a string and return the value as a string rather than a list: characters of myString or: characters 2 thru 8 of myString returns a value of type list. For example: get text 6 thru 15 of myString would return "old string."
You might want to use escape characters in the window produced by the display dialog scripting addition command. The following example shows how to use the escape character in an AppleScript string value. If you then write the string to a file, for instance, the escape character ("\") will not appear in the written out string, just the characters that it "escaped," such as double quotation marks: set myString to "\"Two words \t \ttwo tabs and \ra return character\"" (* returns "\"Two words two tabs and a return character " *) The AppleScript concatenation character (&) can connect two strings. For example: "String one " & "String two" results in "String one String two." Make sure to include spaces in the connected strings to ensure readability. This is an operator that you will be using with strings all the time. A string can be coerced to a number, and vice versa, as long as the string looks like a number. You can convert "55" or "3.14" to a number, but you cannot coerce "1.3.7" or "1.4Stephanie" to a real or integer. You can coerce and then perform math on a string that is a valid number, for instance. This code finds out if a user has AppleScript version 1.4 or greater on their machine: set ASversion to version as string if ((text 1 thru 3 of ASversion) as real) 1.4 then (* string coerced to real *) display dialog "good, you're running at least AppleScript 1.4" else display dialog ("Maybe you should consider upgrading to AppleScript¬ 1.4 or 1.5;You" & " are now running " & ASversion) end if If you poke around in the various scripting additions, you will find many that work with strings. For example, as part of the Standard Additions, the offset osax will find the position of one string inside of another (Appendix A is devoted to scripting additions): set theString to¬ "Robert Cohn was once middle-weight champion of Princeton." offset of "Princeton" in theString (*returns the character position where 'Princeton' begins which is the integer 48 *) |