黑马程序员技术交流社区
标题:
char类型的疑问
[打印本页]
作者:
王针
时间:
2012-6-5 08:28
标题:
char类型的疑问
我写了如下代码:
string str1 = "黑马程序员";
string str2 = "hmcxy";
int str1Length = str1.Length;
int str2Length = str2.Length;
Console.WriteLine(str1Length);
Console.WriteLine(str2Length);
Console.ReadKey();
复制代码
有个问题想不通,一个汉字不是说占两个字节的吗?也就是说应该相当于两个字符,为什么最后输出的都是5呢?
作者:
蒋春
时间:
2012-6-5 09:10
占的字节是byte类型的二进制字节,而length是一个字符串的长度,长度就是算的字符串中的字符个数
作者:
牛景亮
时间:
2012-6-5 09:14
length是字符的长度
作者:
许庭洲
时间:
2012-6-5 09:16
这个与程序中定义的字符串指针有很大关系,输出的字符串长度是依据字符串指针来衡量字符串的长度。
作者:
丁官林
时间:
2012-6-5 09:19
你可一在Length上单击右键,转到定义看:
// 摘要:
// 获取当前 System.String 对象中的字符数。
//
// 返回结果:
//
当前字符串中字符的
数量
。
public int Length { get; }
作者:
姚耀
时间:
2012-6-5 09:28
string str1 = "黑马程序员";
char类型和string类型无关,此例中存储为string类型,其length属性表示其中元素的个数,而与元素所占无关。
作者:
王针
时间:
2012-6-5 09:40
懂了。
我一直把汉字理解为两个英文字符。Ort
作者:
何拴绪
时间:
2012-6-5 09:57
String 中的length()方法返回的是字符串的长度,该长度就是字符串中Unicode 代码单元的数量,Unicode编码是用两个字节来存储一个字符。就是16位来表示一个字符。所以都是5.
作者:
刘豪
时间:
2012-6-5 22:49
c#支持uncode码,所以中文字符串是没问题的,length是指字符串的字符个数,不是占的内存空间。
作者:
非常小可
时间:
2012-6-6 00:59
length 表示字符串的长度 输出当然是5了
作者:
钟山山
时间:
2012-6-6 16:46
char在C#中它属于值类型(Value Type),string在C#中它属于引用类型(Reference Type),length是返回字符串的长度,最后输出的结果是5.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2