如何在C#脚本中解析字符串并查找Twitch聊天消息中的bits字段?
修复方案
错误点梳理
- 语法错误1:
Split方法返回值为字符串数组,你使用string类型单个变量接收,本身就会触发编译失败 - 语法错误2:C#的
Split方法不能直接传入两个字符串当分隔符,需要传入字符数组作为多分隔符参数 - 语法错误3:C#没有
string "bits" in 数组的判断语法,判断数组包含元素需要调用对应方法
修复代码
方案1:拆分后判断(需要先引入LINQ命名空间)
先在代码顶部加引用:
using System.Linq;
修改GameInputs方法为:
private void GameInputs(string ChatInputs) { string[] searchParts = ChatInputs.Split(new char[] { ';', '=' }); if (searchParts.Contains("bits")) { print("I made it here."); // 可选:获取本次打赏的Bits数量 int bitsIndex = Array.IndexOf(searchParts, "bits"); if (bitsIndex + 1 < searchParts.Length) { int bitsCount = int.Parse(searchParts[bitsIndex + 1]); print($"打赏Bits数量:{bitsCount}"); } } }
方案2:直接匹配特征字符串(无需额外引用,性能更好)
不需要修改引用,直接改GameInputs即可:
private void GameInputs(string ChatInputs) { // Twitch消息中bits字段固定为;bits=的格式,不会出现在其他位置,直接判断即可 if (ChatInputs.Contains(";bits=")) { print("I made it here."); // 可选:获取本次打赏的Bits数量 int startIndex = ChatInputs.IndexOf(";bits=") + 6; int endIndex = ChatInputs.IndexOf(';', startIndex); int bitsCount = int.Parse(ChatInputs.Substring(startIndex, endIndex - startIndex)); print($"打赏Bits数量:{bitsCount}"); } }
内容的提问来源于stack exchange,提问作者Blitex
相关产品推荐
相关产品推荐

