Уроки WEB дизайна




 Изменение строки в Java


 В принципе это противоречит тем навыкам, которые вырабатываются при работе с другими языками программирования. Например, с таким, как C, где любая строка- это объединение отдельных ее символов. И поэтому, замена любой из ее букв не вызывает никаких и затруднений.
В языке же Java, это происходит совсем по-другому. Например, что бы поменять какую-либо букву в строке, можно поступить следующим образом. Разбить ее на несколько частей, заменив ту часть, которую мы хотим заменить на какую-либо другую, затем все это сложить и присвоить к той же самой переменной. Конечно, это достаточно сложный путь, но, тем не менее, это так. Это связано с тем, что такие неизменяемые строки имеют большие преимущества, компилятор может делать строки совместно используемыми, и при этом происходит работа со строками, выигрыш во времени работы с ними, и в эффективности.
Попробуем в строчке My first string заменить маленькую букву s, на S большую. Для этого можно написать таким образом, напишем переменную s8, далее знак равенства, опять s8 и ее подстроку substring,
которая начинается с нулевого символа и кончается девятым символом. 9-й символ является пробелом в данном случае. Закроем скобку. Плюс. Теперь напишем в кавычках вместо этой маленькой буквы s, которая здесь стоит, большую букву S. Затем плюс,
и опять s8 с подстрокой substring, начиная от следующей 10-й позиции и уже до конца, до n. N, как мы помним, равняется длине этой строки. Вот это место, где мы определили n, как длину строки s8. Точка с запятой. Теперь попробуем все это вывести на наш экран. Для этого опять правая кнопка мыши, Paste, как мы помним, метод println у нас находится в памяти все время, и далее выведем s8 на экран. Закроем скобку, точка с запятой. А теперь скомпилируем, Tools и Compile Java, далее Tools, Run Java Application, как мы видим, мы получили My first String уже с большой буквой S, String,
т.е. в языке Java мы поменяли одну букву в строковой переменной. Закроем это окно. Для того чтобы проверить, совпадают ли две строки, можно использовать метод equals. Можно написать таким образом. Как мы помним, строка s1 равняется 1, 2, 3, 4, 5, поэтому выведем на наше консольное окно уравнение, в котором указано, равняется ли оно какой-либо строке. Для этого, правая кнопка мыши, Paste.
Вот теперь мы получили println, и далее напишем таким образом. S1, точка. Далее метод equals, скобка. И строка для сравнения. Напишем ту же самую строчку 1, 2, 3, 4, 5. Закроем кавычки, скобки, и точка с запятой. Теперь опять правая кнопка мыши, Paste. И на этот раз напишем несколько по-другому. Сравним s1 equals с какой-либо другой строкой. Например, A, B, C, D. Закроем кавычки, скобки. Точка с запятой.
А теперь, посмотрим, что у нас получилось. Для этого Tools, Compile Java, далее Tools, Run Java Application, и как мы видим, выполнение первого из этих операторов, вызывает результат True, поскольку s1 у нас как раз и равняется 1, 2, 3, 4, 5. А выполнение следующей за ним строки вызывает ответ False. Поскольку s1 не равняется A, B, C, D.
Закроем теперь наше консольное окно и отметим, что-то же самое можно написать несколько по-другому. Щелкнем на правую кнопку мыши, Paste, мы получили println. Затем в кавычках напишем опять какую-либо строку. Например, ту же самую 1, 2, 3, 4, 5, кавычки, точка. Используем эту строку как раз в качестве переменной строкового класса. Далее equals,
откроем скобки, и опять 1, 2, 3, 4, 5, закроем кавычки, скобки, точка с запятой. Т.е. вот в этой строчке 1, 2, 3, 4, 5 мы сравниваем опять-таки с 1, 2, 3, 4, 5. Результат, конечно же, должен получаться такой. Просто в этой строке строку мы использовали в качестве переменной, в качестве экземпляра класса String.
Теперь же отметим еще одно обстоятельство, использование вот такого значка двойного равенства для сравнения двух строчек, на самом деле не правомочно. Поскольку, написать такое можно, это не воспримется в качестве синтаксической ошибки, но результат может быть совершенно непредсказуемым. Потому что при сравнении, компьютер сравнивает на самом деле не две строки, а две ссылки. Приведем пример такого порядка. Как мы помним, результат сравнения s1 и 1, 2, 3, 4, 5 у нас был True, поскольку s1 равняется этой строке. Напишем это немножко другим образом. Для этого правая кнопка мыши, Paste, s1 и на этот раз воспользуемся знаком сравнения равенства. И далее в кавычках 1, 2, 3, 4, 5.
Закроем скобку, точка с запятой. Так вот, результат выполнения вот этого оператора, будет False, поскольку s1 и как раз равен этой строке, но на самом деле, как ссылка, это два совершенно различных участка памяти. Посмотрим, так ли это. Для этого Tools, Compile Java. Теперь Tools, Run Java Application, и как мы видим, результат выполнения нашего последнего оператора будет False.
S1 и 1, 2, 3, 4, 5, это совершенно различные вещи, хотя, как строчки они одинаковые. Но и предыдущий оператор выдал нам результат True. Результат сравнения 1, 2, 3, 4, 5 самим с собой, как с оператором, выдал нам результат True. Закроем данное окно. Из всего этого можно сделать следующий вывод, пользоваться этим оператором для сравнения двух строчек совершенно нежелательно. Поскольку мы можем получить совершенно непредсказуемый результат. Если это один и тот же ресурс, мы будем получать равенство, а если - разные, то будем получать значение False. Хотя, как строчки, это может быть абсолютно одинаковые выражения. Рассмотрим теперь основные методы, которые есть у класса String в языке Java.
Они выведены вот в эту сводную таблицу, которую мы можем видеть на экране. Первый из них это метод charAt, с которым мы уже сталкивались и который возвращает символ, расположенный в указанной позиции, в позиции индекс. Следующий метод, метод compareTo, позволяет сравнивать две строки и возвращает отрицательное значение, если строка предшествует строке other в лексикографическом порядке, и положительное значение, если эта строка other предшествует ей. А также выдает значение 0, если две строки совпадают.
Этот метод очень полезен, если мы хотим расположить строчки в алфавитном порядке. Следующий метод, метод endsWith, позволяет определить оканчивается ли данная строка под строкой suffix. Если это верно, то возвращается значение True, а в противном случае, значение False. А метод equals, с которым мы уже знакомы, сравнивает две строки. Если они равны друг другу, то выдается значение True, а если они не равны, не совпадают, то выдается ответ False. Следующий метод, метод equalsIgnoreCase сравнивает две строки без учета регистра, без учета больших и маленьких букв.
Если они с этими условиями не учета регистра равны, то тогда выдается True, а в противном случае - False. Метод index, так же, как и метод индекс Of, помогает найти подстроку str в исходной строке. И возвращает начало первой подстроки, совпадающей с этой строкой, начиная с позиции 0 в первом случае, или, начиная с позиции fromIndex во втором случае.
Следующие два метода очень похожи на то, что мы только что обсуждали, они возвращают начало последней подстроки, равной этой строке str. Начиная с позиции 0 или с позиции fromIndex во втором варианте. Метод length возвращает длину нашей строки. А метод replace возвращает в новую строку, которая получается заменой всех символом oldChar на символы newChar.
Метод startWidth позволяет определить, начинается ли наша строка подстрокой prefix. Если это верно, возвращается True, в противном случае, возвращается в False. Следующие два метода, которые называются одинаково, это методы substring. У них различное количество передаваемых параметров. Возвращают в новую строку, которая состоит из всех символов, начиная с beginIndex, и заканчивая концом строки в первом случае, или же заканчивая позицией endIndex, не включая при этом именно эту позицию во втором случае.
Следующие два метода toLowercase и toUpperCase, превращают нашу строку в новую строку, преобразовывая при этом прописные буквы в строчные в первом варианте. И наоборот, все строчные буквы в прописные во втором варианте. Последний, выписанный здесь метод trim, который возвращает новую строку, из которой исключены все предшествующие и последующие пробелы.

Карта сайта Реклама
На нашем сайте Вы сможете найти любую информацию о программах 3D Max, Macromedia Flash MX, Corel Draw 12, Adobe Illustrator и многих других. Вы не найдете на данном сайте различные серийники, ключи, активацию, русификаторы, кряк, crack, keygen, серийные ключи и кейгены для этих программ. Для приобретения или скачивания программ воспользуйтесь ссылками на официальных сайтах производителей.
для начала каждого элемента списка скользящая средняя цена