проблемы с Console.Read() и сравнением строк на С#
2) как сравнивать строки на < >? есть функция equals, но она возвращает либо истина, либо ложь. а мне нужно узнать какая из строк больше (чтобы делать сортировку строк)
2) как сравнивать строки на < >? есть функция equals, но она возвращает либо истина, либо ложь. а мне нужно узнать какая из строк больше (чтобы делать сортировку строк)
Метод класса String static int CompareOriginal() возвращает отрицательное число если s1<s2 и положительное если s1>s2, и 0 если строки равны:)
Используй Console.ReadLine()
мне нужно ввести интовскую переменную, а (int)Console.ReadLine() не работает
using System;:D
мне нужно ввести интовскую переменную, а (int)Console.ReadLine() не работает
{
for (int i = 0; i < size; i++)
{
for (int j = i + 1; j < size; j++)
{
if (arrayOfstudents.Group.CompareTo(arrayOfstudents[j].Group) == 1)
{
student temp = arrayOfstudents;
arrayOfstudents = arrayOfstudents[j];
arrayOfstudents[j] = temp;
}
}
}
}
а вот моя сортировка, которая не работает
такой функции нет, есть ToInt16, ToInt32, ToInt64 - использовала 32, ошибок нет, но на вводе прога вылетает
{
for (int i = 0; i < size; i++)
{
for (int j = i + 1; j < size; j++)
{
if (arrayOfstudents.Group.CompareTo(arrayOfstudents[j].Group) == 1)
{
student temp = arrayOfstudents;
arrayOfstudents = arrayOfstudents[j];
arrayOfstudents[j] = temp;
}
}
}
}
а вот моя сортировка, которая не работает
точнее работает через раз (когда группу набираю цифрами)
а вот если 16 - нормально. но теперь-то раз я использую ReadLine - то могу вводить двух-, трех-... значные цифры (таких оценок насколько мне известно нет)
Можно сделать небольшой разборщик, который будет разбирать строку на слова из цифр, разделнных пробелами, и запоминать только первую из каждого слова. Всё равно по уму надо делать какой-то фильтр ввода. План обработки таков:
istr = istr.Trim
istr = " " & istr //не уверен, что это синтаксически верно
//А потом просто создать, скажем, массив символов,
//в который внести первый символ после каждого пробела.
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("Введите число: ");
Console.Title = "Пример ввода чисел";
Console.ForegroundColor = ConsoleColor.Magenta;
for (; ; )
{
ConsoleKeyInfo cc = Console.ReadKey(true);
if (cc.Key == ConsoleKey.Enter)
{
break;
}
if (cc.Key == ConsoleKey.Backspace | cc.KeyChar == (char)8)
{
if (mData.Length > 0)
{
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
Console.Write(" ");
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
mData = mData.Remove(mData.Length - 1);
}
}
if (Char.IsDigit(cc.KeyChar))
{
if (mData.Length < 20)
{
Console.Write(cc.KeyChar);
mData = mData + cc.KeyChar.ToString();
}
else
{
Console.Beep();
}
}
}
int Integer = Convert.ToInt32(mData);
В Integer введенное число.
А если пного надо ввести много и спрашуте :)