Mathematica基础——字符串操作初步
1、 如果需要把不同的字符串合并起来,就需要用到StringJoin函数。而StringJoin还可以简写为“<>”。
例如:
"金刚" <> "ABCD" <> "野狼"
运行结果是:金刚ABCD野狼。
换成完整写法是:
StringJoin["金刚" , "ABCD" , "野狼"]
而StringJoin在运行的时候,会自动地忽略所有的列表:
StringJoin[{{{{"金刚" }, "ABCD"} }, "野狼"}]



2、 如果需要测量一个字符串的字符数目,可以用StringLength,例如:
StringLength["π"]
StringLength["Pi"]
注意,StringLength只能测出引号里面的字符,对于引号外面的部分不起作用:
StringLength["Sin<>"<>"x y"](空格也是一个字符)
但是,有一点很奇怪,如果在字符串里面有换行符“\n”,测量结果不太对劲:
StringLength["Sin<>"<>"x \ny"]
原来,Mathematica把“\n”视为一个字符。如果有多条“\”,Mathematica会把两个“\”——“\\”视为一个字符;如果“\”的数目是偶数个,那么就会把“n”视为单独的字符;如果“\”的数目是奇数个,那么就会把最后的“\n”视为一个字符:
StringLength["x\ny"]
StringLength["x\\ny"]
StringLength["x\\\ny"]
上面三行代码的运行结果是:3、4、4。



3、 如果要分割字符串,需要用到StringSplit,这其实是StringJoin的逆向过程。StringSplit如果没有特别限制,会默认在空格、换行符处分割字符串:
StringSplit["按模式匹配 分割字符串"]
StringSplit["按模式\n匹配 分割字符串"]
StringSplit["按模式\\\\n匹配 分割字符串"]
如果要在特定位置分割,需要加以限制:
StringSplit["按模式匹配 分割字符串","匹"]
StringSplit["按模式\\\n匹配 分割字符串","\\"]
StringSplit["按模式\n匹配 分割字符串","\n"]
可是不知道为什么下面这段代码不能运行:
StringSplit["按模式\\\\\\\\\\n匹配 分割字符串","\"]




4、 要从字符串里面提取某个字符,可以使用StringPart,比如:
StringPart["按模式匹配 分割字符串 ", 5],第五个字符是"配";
StringPart["按模式匹配 分割字符串 ", 6],第五个字符是空格。


5、 用StringTake可以提取某一段字符:
StringTake["按模式匹配 分割字符串 ", 7]
用StringDrop可以消去某一段字符:
StringDrop["按模式匹配 分割字符串 ", -3]



