怎样将一句话中的中文字分割开来
“我是中国人!”,请教下各位怎么将这句话分割成单个中文字存储于数组中。
提示:
MyString.Chars(i)//可以获取到第几个字,i=0开始,为零是第一个字,在上句中就是“我”字;
定义了一个数组
Dim targetArray As String() = MyString.Chars(i)
怎么把“我”“是”“中”“国”“人”这5个字分割后放入数组?
使用循环吗?
[解决办法]
.net里字符串都是unicode字符,一个中文就是一个字符。
Dim s As String = "我是中国人"
Dim arr As String() = s.ToCharArray()
之后
arr 就是 {“我”“是”“中”“国”“人”}
或者
for i as int = 0 to s.length
console.writeline(s(i))
next
输出:
我
是
中
国
人
[解决办法]
写了下python,这个for循环里索引值有点混乱- -
for i as int = 0 to s.length - 1
[解决办法]
- C# code
string s = "我是中国人";string array[] = s.ToList().Select(x => new string(new char[] { x })).ToArray();
[解决办法]
- VB.NET code
Dim re As New Regex("[\u4e00-\u9fa5]", RegexOptions.None)Dim mc As MatchCollection = re.Matches("我是中国人!")For Each ma As Match in mc //ma.Value就是你要的。。。Next
[解决办法]
同1楼,简单的一个ToCharArray()即可。
- C# code
string source = @"我是中国人";char[] result = source.ToCharArray();foreach (var item in result) Console.WriteLine(item);
[解决办法]
[解决办法]
- VB.NET code
Dim s As String = "我是中国人"Dim array As String() = s.ToList(). Where(Function(x) x >= &H4e00 And x <= &H9fa5). Select(Function(x) new String(New Char() { x })). ToArray()
[解决办法]