ShoneSharp语言(S#)的设计和使用介绍系列(6)— 字符串String
ShoneSharp语言(S#)的设计和使用介绍
系列(6)— 字符串String
作者:Shone
声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。
摘要: S#语言的最全能类型——字符串(对应C#的String),可用于表示文本内容,如"S#公式是很有特色"等。S#的字符串输入格式有三种:"xxxxx",@"xxxxx"和'xxxxx'。在S#语言设计时字符串的地位是很高的,系统把它也看成是“程序即数据、数据即程序”的全能表达方式之一。
软件: S#语言编辑解析运行器(ShoneSharp.13.6.exe),运行环境.NET4.0,单EXE直接运行,绿色软件无副作用。网盘链接https://pan.baidu.com/s/1nv1hmJn
前面介绍数值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#语言编辑解析运行器(ShoneSharp.13.6.exe),运行环境.NET4.0,单EXE直接运行,绿色软件无副作用。网盘链接https://pan.baidu.com/s/1nv1hmJn
标签:
ShoneSharp语言(S#)的设计和使用介绍系列(6)— 字符串String的更多相关文章
- ShoneSharp语言(S#)的设计和使用介绍系列(1)— 开篇
ShoneSharp语言(S#)的设计和使用介绍 系列(1)- 开篇 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. 一 ...
- ShoneSharp语言(S#)的设计和使用介绍系列(4)— 入门概述
ShoneSharp语言(S#)的设计和使用介绍 系列(4)- 入门概述 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具
ShoneSharp语言(S#)的设计和使用介绍 系列(3)- 修炼工具 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(2)— 掀开盖头
ShoneSharp语言(S#)的设计和使用介绍 系列(2)- 掀开盖头 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(11)—“类”披炫服靓妆化成“表”
ShoneSharp语言(S#)的设计和使用介绍 系列(11)—“类”披炫服靓妆化成“表” 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sh ...
- ShoneSharp语言(S#)的设计和使用介绍系列(10)— 富家子弟“语句“不炫富
ShoneSharp语言(S#)的设计和使用介绍 系列(10)— 富家子弟“语句“不炫富 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sho ...
- ShoneSharp语言(S#)的设计和使用介绍系列(9)— 一等公民“函数“爱炫巧
ShoneSharp语言(S#)的设计和使用介绍 系列(9)— 一等公民“函数“爱炫巧 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Shon ...
- ShoneSharp语言(S#)的设计和使用介绍系列(8)— 最炫“公式”风
ShoneSharp语言(S#)的设计和使用介绍 系列(8)— 最炫“公式”风 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSha ...
- ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object
ShoneSharp语言(S#)的设计和使用介绍 系列(7)— 布尔Bool及对象Object 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ ...
随机推荐
- 【Linux常见命令】diff命令
diff - compare files line by line diff命令用于比较文件的差异. diff以逐行的方式,比较文本文件的异同处. 如果指定要比较目录,则diff会比较目录中相同文件名 ...
- Android Room SQLite持久层框架
原文链接 前言 Android中提供了SQLite数据库进行数据的持久化 ,并提供了对应API访问数据库,而Room框架提供了SQLite数据访问抽象层,为高效的数据库访问层带来便捷 APP可以缓存用 ...
- HR问了我朋友什么是简单工厂模式,竟被质疑是否学过设计模式,是否是计算机专业?
越是简单的东西,越是容易被忽略,我来带你们好复习一下! 简单工厂模式 简单工厂模式也被称为静态工厂模式;使用简单工厂模式可以将产品的"消费"和生产完全分开,客户端只需要知道自己需要 ...
- CodeForces - 1176A Divide it! (模拟+分类处理)
You are given an integer nn. You can perform any of the following operations with this number an arb ...
- P6474 [NOI Online #2 入门组] 荆轲刺秦王
P6474 [NOI Online #2 入门组] 荆轲刺秦王 bfs+差分+卡常 本来我其实是场内选手,但是因为记错提交时间,晚了半小时才交,交不上了,就自动降级为了场外选手 题面复杂,不简述了 首 ...
- 刷短视频看新闻看小说也能赚钱的几款APP
一.抖音极速版 发啦! 刷短视频也能赚钱 第1步:下载[抖音极速版] 第2步:填我邀请码[831008243] 第3步:立刻提现最高[38元]红包 二.今日头条极速版 1元现金速撸 下载[今日头条极速 ...
- [UWP]推荐一款很Fluent Design的bilibili UWP客户端 : 哔哩
UWP已经有好几个Bilibili的客户端,最近有多了一个: 哔哩 - Microsoft Store 作者云之幻是一位很擅长设计的UWP开发者,我也从他那里学到了很多设计方面的技巧.它还是一位Bil ...
- Codeforces Round #632 (Div. 2)
Codeforces Round #632 (Div. 2) 这一场打的好差呀,这几次艰难上的分全部掉回去了,感觉就像一夜回到了解放前. 说实话,就是被B卡到了,没看到只能从小的放到大的... Lit ...
- spring对websocket的集成和使用
WebSocket是HTML5提出的一个用于通信的协议规范,该协议通过一个握手机制,在客户端和服务端之间建立一个类似于TCP的连接,从而方便客户端和服务端之间的通信. WebSocket协议本质上是一 ...
- SpringCloud 踩坑之 注册中心绑定端口一直是8080
今天在启动注册中心服务时,突然端口一直是8080,找了好久一直没找到原因,先看看我有问题的配置 spring: application: name: eureka-server profiles: d ...