1.串的定义
由零个或者多个字符组成的有限序列
主串 子串
  2.串的比较
串的比较实际上是比较串的字符的编码
字符编码:字符在相应字符集中的序号
ASCII:8位二进制 256 中文 满文 朝鲜文
Unicode: 16位
 
比较规则:
str1="zxcv"
str2="zxcvb"
1.n<m 且字符串1中的字符都包含在字符串2中 str1<str2
2.存在某一个k<=min(n,m),使得ai=bi(i+1,2,3,4.....k)
存在ak<bk
那么str1<str2
除去相等的字符,在第一个不相等的字符位置进行比较,以ASCII码比较
  3.串的抽象数据类型 用\0表示串值的终结
  4.Java中字符串为什么不以\0结尾
● \0结尾在很大程度上要求程序员写规范的代码,如果写出了不规范的代码,那么很容易就内存越界了。
● 另外,string的内部存储是char[],而为了内存安全,java数组本来就有一个length属性,这时以\0结尾就是一个多余的设计了。
● String的内部存储也只能是char[]了,如果是其他的方式,比如通过native内部放一个c风格的数组,那么java代码中的char[]和string的转换就要很多内存拷贝操作了。
 
5.串的顺序存储结构
使用字符数组来表示。
6.串额链式存储结构
优点:操作方便
缺点:存储密度比较低 (存储密度=串值所占的存储位/实际分配的存储位)
 
两种链串:单个字符的串 字符数组串
posted @ 2019-07-30 09:36  修仙小华  阅读(233)  评论(0编辑  收藏  举报