字符串分割

如何把字符串“1.B2.C3.A4.B5.A6.C7.AC8.BC9.AC10.BD11.(1)810 N (2)5 m/s 12.5倍” 转化成
1.B
2.C
3.A
4.B
5.A
6.C
7.AC
8.BC
9.AC
10.BD
11.(1)810 N (2)5 m/s 12.5倍

即以“数字.”分割


        public static void test1()
        {
            //需要解析的文本
            string txt = "1.B2.C3.A4.B5.A6.C7.AC8.BC9.AC10.BD11.(1)810 N  (2)5 m/s 12.5倍";
            //把文本转换成字符数组
            char[] c = txt.ToCharArray();
            //定义一个栈存放子字符串
            Stack<string> words = new Stack<string>();
            //定义游标
            int start = c.Length - 1;
            int end = start;
            //解析文本
            while (start > 0)
            {
                if (IsWord(c[start])) start--;
                if (c[start] == '.')
                {
                    while (start-- > 0)  //还需要解析答案的数字编码,所以要判断start--是否一直是数字,否则已经找完一个选择了!
                    {
                        if ((c[start] < '0' || c[start] > '9'))
                            break;

                    }
                    words.Push(txt.Substring(start + 1, end - start));
                    end = start;
                }
                start--;
            }
            //输出结果
            while (words.Count > 0)
            {
                Console.WriteLine(words.Pop());
            }

            Console.ReadLine();
        }

        //判断是否是中文字符
        static bool IsWord(char code)
        {
            return Encoding.Default.GetByteCount(code.ToString()) == 1 ? false : true;
        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值