zoukankan      html  css  js  c++  java
  • 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

    标签:

  • 相关阅读:
    “北漂”的那些年 5
    “北漂”的那些年 4
    全国省市区代码-2020版
    记一次CDH修改IP
    Python爬取抖音视频
    代码生成,减少70%的重复劳动
    Log4J配置详解
    linux常用命令
    tomcat修改默认访问首页
    java根据身份证号和获取用户年龄和性别的工具类
  • 原文地址:https://www.cnblogs.com/ShoneSharp/p/ShoneSharp-6.html
Copyright © 2011-2022 走看看