S#語言的最全能類型——字元串(對應C#的String),可用於表示文本內容,如"S#公式是很有特色"等。S#的字元串輸入格式有三種:"xxxxx",@"xxxxx"和'xxxxx'。在S#語言設計時字元串的地位是很高的,系統把它也看成是“程式即數據、數據即程式”的全能表達方式之一。 ...
ShoneSharp語言(S#)的設計和使用介紹
系列(6)— 字元串String
作者:Shone
聲明:原創文章歡迎轉載,但請註明出處,https://www.cnblogs.com/ShoneSharp。
摘要: S#語言的最全能類型——字元串(對應C#的String),可用於表示文本內容,如"S#公式是很有特色"等。S#的字元串輸入格式有三種:"xxxxx",@"xxxxx"和'xxxxx'。在S#語言設計時字元串的地位是很高的,系統把它也看成是“程式即數據、數據即程式”的全能表達方式之一。
軟體: S#語言編輯解析運行器,運行環境.NET 4.0,綠色軟體,單個EXE直接運行,無副作用。網盤下載鏈接為https://pan.baidu.com/s/1dF4e08p
前面介紹數值Double類型,把該類型的所有成員羅列出來感覺很羅嗦,但是沒辦法,最基本的三個類型(Double, String, Bool)必須列全面,因為他們是構成S#的原始素材。後面介紹其他類型時將擇重點省略介紹。
一、三種輸入格式
今天詳細解釋一下S#語言的最全能類型——字元串(對應C#的double),可用於表示文本內容,如"S#公式是很有特色"等。與C#一樣,字元串是不可修改的記憶體數據,對它進行運算只能生成新字元串。
S#的字元串輸入格式有三種:
(1)雙引號開始,雙引號結束,中間支持用\進行字元轉義。(與C#相同)
"xxxxx"
(2)雙引號開始,雙引號結束,中間兩個"轉義為單個"。(與C#相同)
@"xxxxx"
(3)單引號開始,單引號結束,中間兩個'轉義為單個",是語言推薦的最簡單的輸入格式。(與JavaScript相同)
'xxxxx'
S#語言也沒有C#中的字元Byte類型,可以用單個字元的字元串替代。
二、全能字元串
在S#語言設計時字元串的地位是很高的,系統把它也看成是“程式即數據、數據即程式”的全能表達方式之一。
比如'20'間接表達了數值,'(20+30)/2'間接表達了數值計算,這都可以看成數據。
在字元串前面使用?,就可以對字元串求值,?'(20+30)/2'計算結果為25。那麼這時不就變成程式了嗎?!
再看一個帶變數的例子如下:
{ a = 20 , b = 30 , c = "(a+b)/2" , d = ?c }
計算結果為 { a = 20, b = 30 , c = '(a+b)/2' , d = 25}。
如果把字元串看成一條很長很長的數據紙帶,把?符號看成一個程式讀寫頭,那麼無限執行下去是不是就是“圖靈機”原型!!!
總之在S#中請善用字元串,它可以提升數據及程式表達能力。
三、字元串函數
Bool exists(String file)
說明:返回指定文件內容字元串
輸入:exists('d:\hjx.txt')
求值:False
String format(String s,Object arg,...)
說明:返回格式化字元串,其中格式項與.NET相同
輸入:format('hello {0}:{1}',10,'hjx')
求值:'hello 10:hjx'
String read(String file)
說明:返回指定文件內容字元串
輸入:read('d:\hjx.txt')
四、字元串屬性
Double String.CharLen
說明:字元長度值(其中漢字為1,英文0.5,忽略換行)
輸入:x.CharLen
Double[] String.Chars
說明:字元值數組
輸入:x.Chars
String[] String.CommarWords
說明:獲取文本的逗號分隔符串數組
輸入:x.CommarWords
Double String.Count
說明:字元計數值
輸入:x.Count
Double String.EndChar
說明:結束字元數值
輸入:x.EndChar
String String.Identifier
說明:規範名稱標識符
輸入:x.Identifier
Bool String.IsIdentifier
說明:是否規範名稱標識符
輸入:x.IsIdentifier
String[] String.Lines
說明:獲取文本的行字元串數組
輸入:x.Lines
String String.Lower
說明:小寫字元串
輸入:x.Lower
String String.PrefixLower
說明:首字母小寫
輸入:x.PrefixLower
String String.PrefixUpper
說明:首字母大寫
輸入:x.PrefixUpper
String String.Reverse
說明:倒轉字元串
輸入:x.Reverse
String[] String.SemicolonWords
說明:獲取文本的分號分隔符串數組
輸入:x.SemicolonWords
String[] String.SpaceWords
說明:獲取文本的空格分隔字元串數組
輸入:x.SpaceWords
Double String.StartChar
說明:開始字元數值
輸入:x.StartChar
String String.Trim
說明:頭尾去空白字元串
輸入:x.Trim
String String.TrimEnd
說明:尾部去空白字元串
輸入:x.TrimEnd
String[] String.TrimLines
說明:獲取文本的行字元串數組
輸入:x.TrimLines
String String.TrimStart
說明:頭部去空白字元串
輸入:x.TrimStart
String String.Upper
說明:大寫字元串
輸入:x.Upper
String[] String.Words
說明:獲取文本的回車或空格分隔字元串數組
輸入:x.Words
五、字元串方法
Bool String.Contains(String value)
說明:判斷是否包含指定串
輸入:x.Contains('hjx')
String String.Del(Double i)
說明:返回刪除字元串,從位置i開始刪除所有字元
輸入:x.Del(5)
String String.Del(Double i, Double d)
說明:返回刪除字元串,從位置i開始刪除d個字元
輸入:x.Del(5,2)
Bool String.Ends(String value)
說明:判斷是否以指定串結尾
輸入:x.Ends('hjx')
String[] String.Grow(Double n)
說明:字元串自增序列數組
輸入:x.Grow(5)
String String.Identifier(String prefix)
說明:帶首碼的規範名稱標識符
輸入:x.Identifier('my')
Double String.IndexOf(String sub)
說明:返回匹配子串sub的第一個索引
輸入:x.IndexOf('hjx')
Double String.IndexOf(String sub, Double i)
說明:返回匹配子串sub的第一個索引,從位置i開始檢查
輸入:x.IndexOf('hjx',0)
Double String.IndexOf(String sub, Double i, Double d)
說明:返回匹配子串sub的第一個索引,從位置i開始並檢查d個字元
輸入:x.IndexOf('hjx',0,5)
Double String.IndexOfAny(String sub)
說明:返回匹配sub中任意字元的第一個索引
輸入:x.IndexOfAny('hjx')
Double String.IndexOfAny(String sub, Double i)
說明:返回匹配sub中任意字元的第一個索引,從位置i開始檢查
輸入:x.IndexOfAny('hjx',0)
Double String.IndexOfAny(String sub, Double i, Double d)
說明:返回匹配sub中任意字元的第一個索引,從位置i開始並檢查d個字元
輸入:x.IndexOfAny('hjx',0,5)
String String.Insert(Double i, String sub)
說明:返回插入字元串,在位置i處插入子串sub
輸入:x.Insert(5,'hjx')
Double String.LastIndexOf(String sub)
說明:返回反向匹配子串sub的第一個索引
輸入:x.LastIndexOf('hjx')
Double String.LastIndexOf(String sub, Double i)
說明:返回反向匹配子串sub的第一個索引,從位置i反向開始檢查
輸入:x.LastIndexOf('hjx',5)
Double String.LastIndexOf(String sub, Double i, Double d)
說明:返回反向匹配子串sub的第一個索引,從位置i反向開始並檢查d個字元
輸入:x.LastIndexOf('hjx',5,5)
Double String.LastIndexOfAny(String sub)
說明:返回反向匹配sub中任意字元的第一個索引
輸入:x.LastIndexOfAny('hjx')
Double String.LastIndexOfAny(String sub, Double i)
說明:返回反向匹配sub中任意字元的第一個索引,從位置i反向開始檢查
輸入:x.LastIndexOfAny('hjx',5)
Double String.LastIndexOfAny(String sub, Double i, Double d)
說明:返回反向匹配sub中任意字元的第一個索引,從位置i反向開始並檢查d個字元
輸入:x.LastIndexOfAny('hjx',5,5)
String String.Pad(Double d)
說明:返回填充空格對齊後字元串,d正/負對應右/左對齊
輸入:x.Pad(20)
String String.Pad(Double d, Double ch)
說明:返回填充字元對齊後字元串,d正/負對應右/左對齊
輸入:x.Pad(20,42)
String String.Remove(String sub)
說明:返回刪除指定串後字元串
輸入:x.Remove('hjx')
String String.Replace(String old, String rep)
說明:返回替換指定串後字元串
輸入:x.Replace('hjx','HJX')
String[] String.Split(String g)
說明:返回用g中任意字元分隔後的字元串數組
輸入:x.Split(',')
Bool String.Starts(String value)
說明:判斷是否以指定串開頭
輸入:x.Starts('hjx')
String String.Sub(Double i)
說明:返回提取字元串,從位置i開始提取所有字元
輸入:x.Sub(5)
String String.Sub(Double i, Double d)
說明:返回提取字元串,從位置i開始提取d個字元
輸入:x.Sub(5,2)
同樣其實還有些適用於數值類型的算符、函數、屬性以及方法,也沒有在本節列出而是放在其基類型——任意對象(對應C#的object)中介紹,因為不但支持字元串,還支持包含字元串的數組、列表和數據表的計算。
聲明:原創文章歡迎轉載,但請註明出處,https://www.cnblogs.com/ShoneSharp。
軟體: S#語言編輯解析運行器,運行環境.NET 4.0,綠色軟體,單個EXE直接運行,無副作用。網盤下載鏈接為https://pan.baidu.com/s/1dF4e08p
標簽: