本帖最后由 李恒权 于 2014-3-13 22:19 编辑
- 黑马程序员---如何处理将字符串里的数字提取出来和将字符串里的空格去掉?
- 先说string类里string.split();和string.trim();方法。
- String.split();是一个构造方法,在这我只将其关于从字符串里提取数字的用法。它是一个构造方法,说明它就有参数,我只说它只含有char[]参数;此方法的意义是返回一个含有一些被分隔了的子字符串的字符串数组。参数char[]就是被分隔的字符。
- 用法:看例子。
- string str = "23,34,1,123,4321";
- // 此字符串中“,”不是数字,就作为分隔符。
- string[] str1 = str.Split(',');
- Console.WriteLine(str1[0]);
- Console.WriteLine(str1[1]);
- Console.WriteLine(str1[2]);
- Console.WriteLine(str1[3]);
- Console.WriteLine(str1[4]);
-
- Console.ReadKey();
- /*其显示为23 34 1 123 4321*/
- 注意:
- 1、 返回的数组元素中不包含分隔符字符;
- 2、 如果没有参数或参数为null,那么返回的数组就是整个字符串;
- 3、 参数能用空白字符串作为分隔符。
- 以上只是有数字和逗号而已,如果更复杂一点又该如何实现?比如:我叫李恒权,今年23岁,我家有6口人,原本是5口之家的,很高兴的是:今年年初,家里又加了1人---我侄子!(别急!)
- String.trim();方法:返回值为:从当前字符串的开头和结尾删除所有空白字符后剩余的字符串。
- 看例子:(按照上面那道题的逻辑来做)
- string str = "我叫李恒权,今年23岁,我家有6口人,原本是5口之家的,很高兴的是:今年年初,家里又加了1人---我侄子!";
- //新建一个char数组
- char[] chr = new char[str.Length];
- int j = 0;
- //将含有数字、文字、各种符号合并分为数字和' '(空字符)
- for (int i = 0; i < str.Length; i++)
- {
- if ((str[i] >= '0') && (str[i] <= '9'))
- {
- chr[j] = str[i];//将数字存储到另一个char数组中
- }
- else
- {
- chr[j] = ' ';//将里面的非数字转换为' '
- }
- j++;
- }
- //将char数组重新组合在一起,str1就只剩下数字和空格了。
- string str1 = new string(chr);
- //字符串用' '隔开,即分离出不是空格的字符,即数字
- string[] strarr = str1.Split(' ');
- //通过foreach来读取显示。
- foreach (string s in strarr)
- {
- //因为字符串数组中存储的不是数字就是空字符,这样就可以通过trim方法来筛选出数字。
- if (s.Trim() != "")
- {
- Console.WriteLine(s);
- }
- }
- Console.ReadKey();
- 总结:首先声明一个char数组,通过for循环来把数字分离出来存到char数组里,再将char重组成string字符串,然后用string.split();构造方法来分隔数字,通过string.trim();方法来筛选出数字,最后用foreach来输出实现提取数字。
复制代码
自己总结的,给大家分享分享,如果存在哪些不足,希望大家不吝赐教!:handshake
|