我参与的unity游戏项目中,设计有控制台功能供玩家使用,但在设计识别玩家的输入内容的算法时,出现了【提取文本中两个符号之间的字符串内容】的需求。但我在网上找不到简单易理解的实现方法。因此我自己设计了一个算法。
函数代码:
void extract(string 输入字符串,out string 输出字符串数组,string 开始字符, string 结束字符){
string[] A = 输入字符串.Split(开始字符, StringSplitOptions.None);
string[] B = A[1].Split(结束字符, StringSplitOptions.None);
输出字符串数组 = B[0];
}
使用方法:
string A="小明【小红】小刚";
string B="";
extract(A, out B, "【", "】");
Debug.Log(B);
(Debug.Log()是Unity中的控制台输出指令)
运行结果:小红
运行原理:借助split()将源字符串以开始字符为界限分割为两份。抛弃第一份,再以结束字符为界限把第二份分割成两份,取二次分割后的第一份。这就是目标结果字符串。
不过这种方法有个缺陷,就是待处理的字符串中只能分别包含一个开始字符和一个结束字符。