经常看到一些高手用String开头的函数来处理一些问题,如“批量到处图片”、“批量抓取图片”、文本text等问题。所以,这里,我和大家一起学习一下Mathematica在字符串上面的问题的处理方法。
工具/原料
电脑
Mathematica
方法/步骤
1、如果需要把不同的字符串合并起来,就需要用到StringJoin函数。而StringJoin还可以简写为“<>”。例如:"金刚"<>"ABCD"<>"野狼"运行结果是:金刚ABCD野狼。换成完整写法是:StringJoin["金刚","ABCD","野狼"]而StringJoin在运行的时候,会自动地忽略所有的列表:StringJoin[{{{{"金刚"},"ABCD"}},"野狼"}]
2、如果需要测量一个字符串的字符数目,可以用StringLength水貔藻疽,例如:StringLength["π&quo墉掠载牿t;]StringLength["Pi"]注意,StringLength只能测出引号里面的字符,对于引号外面的部分不起作用:StringLength["Sin<>"<>"xy"](空格也是一个字符)但是,有一点很奇怪,如果在字符串里面有换行符“\n”,测量结果不太对劲:StringLength["Sin<>"<>"x\ny"]原来,Mathematica把“\n”视为一个字符。如果有多条“\”,Mathematica会把两个“\”——“\\”视为一个字符;如果“\”的数目是偶数个,那么就会把“n”视为单独的字符;如果“\”的数目是奇数个,那么就会把最后的“\n”视为一个字符:StringLength["x\ny"]StringLength["x\\ny"]StringLength["x\\\ny"]上面三行代码的运行结果是:4。
3、如果要分割字符串,需要用到StringSplit,这其实是Str坡纠课柩ingJoin的逆向过程。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]