我的老师给了我这个:
int[] letters = { 'c', 's', 'a', 'k', 'x', 'l', 'j' };
并且告诉我应该将chars转换为int然后按字母顺序对它们进行冒泡并将其返回char并按字母顺序保存并打印数组。
我只会在处理数字时遇到气泡排序,但在使用字符时则不会。非常感谢任何帮助或启发。
答案 0 :(得分:3)
并告诉我应该将字符转换为int
可能你并不理解他告诉你的事情。在电脑"字符"已经是数字了。没有特殊的内存单元格具有 A 字符的形状。
你可以:
char ch = 'A';
int num = ch;
或者你可以:
char ch1 = 'A';
char ch2 = 'B';
if (ch1 < ch2)
{
}
例如(但是你不想做你想做的事情):
char ch1 = 'A';
char ch2 = (char)(ch1 + 1); // 'B'
(注意最终的演员:当你在char
上进行数学运算时,会隐式转换为int
)
等等。
请注意,相反的情况并非如此:
char ch = 'A';
int num = ch;
char ch2 = num; // COMPILATION ERROR
你需要演员:
char ch2 = (char)num;
(从技术上讲,正确的定义是存在从char
到int
的隐式强制转换(在第一个和第三个示例中使用)并且有一个从int
到char
的显式强制转换(在上一个示例中使用)。
(技术上[2] char
应该通过使用排序规则进行排序(这是对知道e < è < f
的字符串的特殊排序)但这对学校来说有点过分了关于泡沫分类的练习)
答案 1 :(得分:0)
// init array
char[] letters = { 'c', 's', 'a', 'k', 'x', 'l', 'j' };
// bubble sorting...
int count = letters.Length;
bool swapped;
do
{
swapped = false;
for (int i = 0; i < count - 1; i++)
{
if (letters[i] > letters[i + 1])
{
char c = letters[i];
letters[i] = letters[i + 1];
letters[i + 1] = c;
swapped = true;
}
}
count--;
} while (swapped);
string result = string.Join(", ", letters);
<强>结果强>
a, c, j, k, l, s, x