将 int 值添加到 char 数组 ASCII 值 C# & JAVA
Adding int values to char array ASCII value C# & JAVA
在 Java 中,您可以轻松地将 int 值添加到 char 数组,而无需像这样定义它
String name = " maisam is my name ";
char[] arr = name.toCharArray();
for (int i = 0; i < arr.length; i++) {
arr[i] += 100;
}
但在 c# 中,您需要在添加值时提及 (char)
string name = " maisam is my name ";
char[] arr = name.ToCharArray();
for (int i = 0; i < arr.Length; i++) {
arr[i] += (char) 100;
}
我在 Java 中尝试了两种方法,工作完美,没有错误,但在 c# 中它给了我一个错误,这是为什么?我到处搜索都没有找到任何解释!
这更多的是关于幕后发生的事情,而不是语法差异。您在 Java 中的转换方式与在 C# 中的转换方式相同,但您只是不需要在这段 Java 代码中这样做。
在 Java 中,它会自动将 int 转换为 char 类型。
但 C# 的工作方式不同,您必须强制转换值。
似乎 C# 的类型比 Java.
强一点
这应该有效。 c# 将 char 隐式转换为 int,但不会将 int 转换为 char,因此您必须在分配给 char 数组之前将添加的 int 值转换为 char..
string name = " maisam is my name ";
char[] arr = name.ToCharArray();
for (int i = 0; i < arr.Length; i++) {
arr[i] = (char)(arr[i] + 100);
}
编辑: 代码 arr[i] += (char)100;
也可以正常工作。上面的代码只是对同一代码的阐述。
简单来说,C#
中没有从int
到char
的隐式转换
C#
int
int -> long , float, double, or decimal
查看此 source 的其他可用性。
因为你没有像
这样的隐式转换
char c = 100 ;
但应该使用显式转换
char c = (char) 100 ;
也在这里:C# char
(source)
转化次数
A char can be implicitly converted to ushort, int, uint, long, ulong,
float, double, or decimal. However, there are no implicit conversions
from other types to the char type.
在 Java 中,您可以轻松地将 int 值添加到 char 数组,而无需像这样定义它
String name = " maisam is my name ";
char[] arr = name.toCharArray();
for (int i = 0; i < arr.length; i++) {
arr[i] += 100;
}
但在 c# 中,您需要在添加值时提及 (char)
string name = " maisam is my name ";
char[] arr = name.ToCharArray();
for (int i = 0; i < arr.Length; i++) {
arr[i] += (char) 100;
}
我在 Java 中尝试了两种方法,工作完美,没有错误,但在 c# 中它给了我一个错误,这是为什么?我到处搜索都没有找到任何解释!
这更多的是关于幕后发生的事情,而不是语法差异。您在 Java 中的转换方式与在 C# 中的转换方式相同,但您只是不需要在这段 Java 代码中这样做。 在 Java 中,它会自动将 int 转换为 char 类型。 但 C# 的工作方式不同,您必须强制转换值。 似乎 C# 的类型比 Java.
强一点这应该有效。 c# 将 char 隐式转换为 int,但不会将 int 转换为 char,因此您必须在分配给 char 数组之前将添加的 int 值转换为 char..
string name = " maisam is my name ";
char[] arr = name.ToCharArray();
for (int i = 0; i < arr.Length; i++) {
arr[i] = (char)(arr[i] + 100);
}
编辑: 代码 arr[i] += (char)100;
也可以正常工作。上面的代码只是对同一代码的阐述。
简单来说,C#
int
到char
的隐式转换
C#
int
int -> long , float, double, or decimal
查看此 source 的其他可用性。
因为你没有像
这样的隐式转换char c = 100 ;
但应该使用显式转换
char c = (char) 100 ;
也在这里:C# char
(source)
转化次数
A char can be implicitly converted to ushort, int, uint, long, ulong, float, double, or decimal. However, there are no implicit conversions from other types to the char type.