コード例 #1
0
        /// <summary>
        /// 分割字符串  空字符串不返回,返回的字符串两端空格被去掉
        /// </summary>
        /// <param name="aList"></param>
        /// <param name="aSplitStr"></param>
        /// <returns></returns>
        public static ArrayList SplitStringToList(string aStr, string aSplitStr)
        {
            //此函数只是按第一个字符进行分割
            //return aStr.Split(aSplitStr.ToCharArray());

            ArrayList result = new ArrayList();

            aStr = aStr.Trim();

            int index = aStr.IndexOf(aSplitStr);

            while (index >= 0)
            {
                string tmp = I3StringUtil.SubString(aStr, 0, index).Trim();
                if (!string.IsNullOrEmpty(tmp))
                {
                    result.Add(tmp);
                }
                aStr  = I3StringUtil.SubString(aStr, index + aSplitStr.Length, aStr.Length - index - aSplitStr.Length).Trim();
                index = aStr.IndexOf(aSplitStr);
            }
            if (!aStr.Equals(string.Empty))
            {
                result.Add(aStr);
            }


            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 返回首字母为大写的字符串
        /// </summary>
        /// <param name="aStr"></param>
        /// <returns></returns>
        public static string ConvertFirstToUpper(string aStr)
        {
            string str1 = I3StringUtil.SubString(aStr, 0, 1);
            string str2 = I3StringUtil.SubString(aStr, 1, aStr.Length - 1);

            return(str1.ToUpper() + str2);
        }
コード例 #3
0
        /// <summary>
        /// 由区位码得到汉字
        /// </summary>
        /// <param name="aNum"></param>
        /// <returns></returns>
        public static string ConvertNumToChinese(string aNum)
        {
            byte[] array = new byte[2];
            string str1  = I3StringUtil.SubString(aNum, 0, 2);
            string str2  = I3StringUtil.SubString(aNum, 2, 2);
            int    front = Convert.ToInt32(str1) + 160;
            int    back  = Convert.ToInt32(str2) + 160;

            array[0] = (byte)front;
            array[1] = (byte)back;
            return(Encoding.GetEncoding("GBK").GetString(array));
        }
コード例 #4
0
        /// <summary>
        /// 获取子字符串个数
        /// 注意,像 ab我我我我我cc 这样的字符串,获取 我我 的个数时,返回2而不是4
        /// </summary>
        /// <param name="aStr"></param>
        /// <param name="aSub"></param>
        /// <returns></returns>
        public static int GetSubCountInString(string aStr, string aSub)
        {
            int result = 0;

            int index = aStr.IndexOf(aSub);

            while (index >= 0)
            {
                result++;
                aStr  = I3StringUtil.SubString(aStr, index + aSub.Length, aStr.Length - index - aSub.Length);
                index = aStr.IndexOf(aSub);
            }

            return(result);
        }
コード例 #5
0
        /// <summary>
        /// 校验18位身份证号码是否正确  正确返回false  并在信息中写入类似于 湖北,1983-09-13,男 的字符串
        /// 错误则返回false,并在信息中写入错误信息
        /// </summary>
        /// <param name="cid"></param>
        /// <returns></returns>
        public static bool Check18PersonNO(string cid, out string result)
        {
            string[] aCity = new string[] { null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "内蒙古", null, null, null, null, null, "辽宁", "吉林", "黑龙江", null, null, null, null, null, null, null, "上海", "江苏", "浙江", "安微", "福建", "江西", "山东", null, null, null, "河南", "湖北", "湖南", "广东", "广西", "海南", null, null, null, "重庆", "四川", "贵州", "云南", "西藏", null, null, null, null, null, null, "陕西", "甘肃", "青海", "宁夏", "新疆", null, null, null, null, null, "台湾", null, null, null, null, null, null, null, null, null, "香港", "澳门", null, null, null, null, null, null, null, null, "国外" };
            double   iSum  = 0;
            Regex    rg    = new System.Text.RegularExpressions.Regex(@"^\d{17}(\d|x)$");
            Match    mc    = rg.Match(cid);

            if (!mc.Success)
            {
                result = "";
                return(false);
            }
            cid = cid.ToLower();
            cid = cid.Replace("x", "a");
            if (aCity[int.Parse(I3StringUtil.SubString(cid, 0, 2))] == null)
            {
                result = "非法地区";
                return(false);
            }
            try
            {
                DateTime.Parse(I3StringUtil.SubString(cid, 6, 4) + "-" + I3StringUtil.SubString(cid, 10, 2) + "-" + I3StringUtil.SubString(cid, 12, 2));
            }
            catch
            {
                result = "非法生日";
                return(false);
            }
            for (int i = 17; i >= 0; i--)
            {
                iSum += (System.Math.Pow(2, i) % 11) * int.Parse(cid[17 - i].ToString(), System.Globalization.NumberStyles.HexNumber);
            }
            if (iSum % 11 != 1)
            {
                result = "非法证号";
                return(false);
            }
            result = aCity[int.Parse(I3StringUtil.SubString(cid, 0, 2))]
                     + "," + I3StringUtil.SubString(cid, 6, 4)
                     + "-" + I3StringUtil.SubString(cid, 10, 2)
                     + "-" + I3StringUtil.SubString(cid, 12, 2)
                     + "," + (int.Parse(I3StringUtil.SubString(cid, 16, 1)) % 2 == 1 ? "男" : "女");
            return(true);
        }
コード例 #6
0
        /// <summary>
        /// 从 A1 形式字符串得到行号列号
        /// 注意:不支持ZZ以后的列
        /// </summary>
        /// <param name="aReference"></param>
        /// <param name="rowIndex"></param>
        /// <param name="columnIndex"></param>
        public static void GetIndexByReference(string aReference, out int rowIndex, out int columnIndex)
        {
            string columnName = I3ReferenceUtil.GetColumnName(aReference);

            rowIndex = (int)I3ReferenceUtil.GetRowIndex(aReference);

            int div, mod;

            if (columnName.Length == 1)
            {
                div = 0;
            }
            else
            {
                div = I3MathUtil.Asc(I3StringUtil.SubString(columnName, 0, 1)) - 64;
            }


            mod = I3MathUtil.Asc(I3StringUtil.SubString(columnName, columnName.Length - 1, 1)) - 64;

            columnIndex = div * 26 + mod;
        }
コード例 #7
0
ファイル: MathUtil.cs プロジェクト: ie310mu/i3go_codemaker
        /// <summary>
        /// 将金钱转换为大写人民币
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public static string ConvertMoneyToUpper(decimal num)
        {
            string str1 = "零壹贰叁肆伍陆柒捌玖";            //0-9所对应的汉字
            string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分";       //数字位所对应的汉字
            string str3 = "";                      //从原num值中取出的值
            string str4 = "";                      //数字的字符串形式
            string str5 = "";                      //人民币大写金额形式
            int    i;                              //循环变量
            int    j;                              //num的值乘以100的字符串长度
            string ch1   = "";                     //数字的汉语读法
            string ch2   = "";                     //数字位的汉字读法
            int    nzero = 0;                      //用来计算连续的零值是几个
            int    temp;                           //从原num值中取出的值

            num  = Math.Round(Math.Abs(num), 2);   //将num取绝对值并四舍五入取2位小数
            str4 = ((long)(num * 100)).ToString(); //将num乘100并转换成字符串形式
            j    = str4.Length;                    //找出最高位
            if (j > 15)
            {
                return("溢出");
            }
            str2 = I3StringUtil.SubString(str2, 15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分

            //循环取出每一位需要转换的值
            for (i = 0; i < j; i++)
            {
                str3 = I3StringUtil.SubString(str4, i, 1); //取出需转换的某一位的值
                temp = Convert.ToInt32(str3);              //转换为数字
                #region 当所取位数不为元、万、亿、万亿上的数字时
                if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15))
                {
                    if (str3 == "0")
                    {
                        ch1   = "";
                        ch2   = "";
                        nzero = nzero + 1;
                    }
                    else
                    {
                        if (str3 != "0" && nzero != 0)
                        {
                            ch1   = "零" + I3StringUtil.SubString(str1, temp * 1, 1);
                            ch2   = I3StringUtil.SubString(str2, i, 1);
                            nzero = 0;
                        }
                        else
                        {
                            ch1   = I3StringUtil.SubString(str1, temp * 1, 1);
                            ch2   = I3StringUtil.SubString(str2, i, 1);
                            nzero = 0;
                        }
                    }
                }
                #endregion
                #region 该位是万亿,亿,万,元位等关键位
                else
                {
                    if (str3 != "0" && nzero != 0)
                    {
                        ch1   = "零" + I3StringUtil.SubString(str1, temp * 1, 1);
                        ch2   = I3StringUtil.SubString(str2, i, 1);
                        nzero = 0;
                    }
                    else
                    {
                        if (str3 != "0" && nzero == 0)
                        {
                            ch1   = I3StringUtil.SubString(str1, temp * 1, 1);
                            ch2   = I3StringUtil.SubString(str2, i, 1);
                            nzero = 0;
                        }
                        else
                        {
                            if (str3 == "0" && nzero >= 3)
                            {
                                ch1   = "";
                                ch2   = "";
                                nzero = nzero + 1;
                            }
                            else
                            {
                                if (j >= 11)
                                {
                                    ch1   = "";
                                    nzero = nzero + 1;
                                }
                                else
                                {
                                    ch1   = "";
                                    ch2   = I3StringUtil.SubString(str2, i, 1);
                                    nzero = nzero + 1;
                                }
                            }
                        }
                    }
                }
                #endregion

                if (i == (j - 11) || i == (j - 3))
                {
                    //如果该位是亿位或元位,则必须写上
                    ch2 = I3StringUtil.SubString(str2, i, 1);
                }

                str5 = str5 + ch1 + ch2;

                if (i == j - 1 && str3 == "0")
                {
                    //最后一位(分)为0时,加上“整”
                    str5 = str5 + '整';
                }
            }

            if (num == 0)
            {
                str5 = "零元整";
            }

            return(str5);
        }