C++ string conversion functions: string to int & int to string
Содержание:
- Example 2: A Program to Convert String to Integer Using the atoi() Function
- Поиск в строке
- What is Type Conversion?
- Java – Convert String to int using Integer.valueOf(String)
- 2 Класс Scanner
- Complete Example
- Методы строк
- Конвертировать с использованием StringBuffer или StringBuilder
- Поиск с помощью indexOf()
- Сортировка объектов
- 1 Приведение типов
- 3 Сужение типов
- 5 Ввод данных с консоли
- How to Convert String to Integer in the C Language
- Обрезка посредством trim()
- Подстроки
- Integer.parseInt() Method
- Вызов методов Parse и TryParseCalling the Parse and TryParse methods
- Примеры
- 1 Сравнение строк
- Константы
Example 2: A Program to Convert String to Integer Using the atoi() Function
atoi() is a function that converts a string data type to integer data type in the C language. The syntax of this function is as follows
int atoi((const char * str);
Here, str is of type pointer to a character. The const keyword is used to make variables non-modifiable. This function returns an integer value after execution. The atoi() function is present in the stdlib.h header file. This header file contains all the type casting functions used in the C language.
#include <stdio.h> #include <stdlib.h> main() { char x = "450"; int result = atoi(x); printf("integer value of the string is %d\n", result); }
The code is not complex, but to understand it better, you may want to take this course on C programming.
The list of other string to numerical values in-built type casting functions used in C programs include
- atof()- This function is used to convert string to a floating point value.
- atol()- Use this function to convert a string to a long integer value.
Hope this article was helpful and informative. Do try out the examples for yourself and experiment with them. Programming is one of those things that becomes better with practice. At any time, if you need help, feel free to refer back to this C course for insights into C programming.
Поиск в строке
Метод indexOf() находит
индекс первого вхождения подстроки в строку, а метод lastIndexOf() — индекс
последнего вхождения. Если подстрока не будет найдена, то оба
метода возвращают -1:
String str = "Hello world"; int index1 = str.indexOf('l'); // 2 int index2 = str.indexOf("wo"); //6 int index3 = str.lastIndexOf('l'); //9 System.out.println(index1+" "+index2+" "+index3);
Метод startsWith() позволяют
определить начинается ли строка с определенной подстроки, а метод endsWith() позволяет
определить заканчивается строка на определенную подстроку:
String str = "myfile.exe"; boolean start = str.startsWith("my"); //true boolean end = str.endsWith("exe"); //true System.out.println(start+" "+end);
What is Type Conversion?
Many times in C programs, expressions contain variables and constants of different data types. For calculation purposes, they need to be converted to the same data type. When you convert one data type into another, the method is termed type conversion.
In C, we have 2 types of type conversion
- Implicit Type Conversion – This kind of type conversion is done automatically by the compiler. Programmers do not play any role here.
- Explicit Type Conversion- Here the programmer is responsible for the type conversion. This is also called typecasting. The syntax is as follows.
(datatype) expression;
The above item is called a cast operator. Take a look at this example.
char a; int b;
a=(char)b;
This is a simple way to convert an integer to a character type. Here, ‘a’ is of character data type and b is of integer data type. It is not possible to assign the value of variable b to variable a as they are of different data types. So, we typecast integer b to character in this example. Now, both a and b are of character data type.
Java – Convert String to int using Integer.valueOf(String)
works same as . It also converts a String to int value. However there is a difference between and , the method returns an object of Integer class whereas the method returns a primitive int value. The output of the conversion would be same whichever method you choose. This is how it can be used:
String str="1122"; int inum = Integer.valueOf(str);
The value of inum would be 1122.
This method also allows first character of String to be a minus ‘-‘ sign.
String str="-1122"; int inum = Integer.valueOf(str);
Value of inum would be -1122.
Similar to the parseInt(String) method it also throws when all the characters in the String are not digits. For example a String with value “11aa22” would throw an exception.
Lets see the complete code for conversion using this method.
Java Convert String to int example using Integer.valueOf(String)
public class JavaExample{ public static void main(String args[]){ //String with negative sign String str="-234"; //An int variable int inum = 110; /* Convert String to int in Java using valueOf() method * the value of variable inum2 would be negative after * conversion */ int inum2 = Integer.valueOf(str); //Adding up inum and inum2 int sum = inum+inum2; //displaying sum System.out.println("Result is: "+sum); } }
Output:
Lets see another interesting example of String to int conversion.
2 Класс Scanner
Класс (полное имя ) умеет считывать данные из разных источников: консоль, файлы, интернет. Если мы хотим, чтобы он считывал данные с клавиатуры, мы должны передать ему объект в качестве параметра – источника данных. А уж объект типа Scanner сам разберется, что с ним делать.
Считывание с клавиатуры с помощью объекта типа будет выглядеть примерно так:
Код | Пояснение |
---|---|
Создаем объект класса . Читаем с клавиатуры строку текста. Читаем с клавиатуры число. |
Выглядит вроде несложно, но так ли все просто на самом деле?
Думаю, у вас появилась куча вопросов, и сейчас мы на них ответим.
Но для начала продемонстрируем пример полной программы, где используется класс :
Complete Example
package com.howtodoinjava.example; public class StringToIntExamples { public static void main(String[] args) { //Using Integer.parseInt() method int intVal = Integer.parseInt("1001"); System.out.println(intVal); //Using Integer.valueOf() method //valueOf() returns Integer instance which is converted to int int intVal2 = Integer.valueOf("1001"); System.out.println(intVal2); //Using Integer.decode() method //decode() returns Integer instance which is converted to int int intVal3 = Integer.decode("1001"); System.out.println(intVal3); //Base X String to int //base 8 System.out.println( Integer.parseInt("1001", 8) ); System.out.println( Integer.valueOf("1001", 8) ); System.out.println( Integer.decode("01001") ); //base 16 System.out.println( Integer.parseInt("1001", 16) ); System.out.println( Integer.valueOf("1001", 16) ); System.out.println( Integer.decode("0x1001") ); } }
Output:
1001 1001 1001 513 513 513 4097 4097 4097
Happy Learning !!
Методы строк
Метод | Описание | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|---|
charAt() | Возвращает символ по заданному индексу внутри строки. | Да | Да | Да | Да | Да | Да |
charCodeAt() | Возвращает числовое значение символа по указанному индексу в стандарте кодирования символов Unicode (Юникод). | Да | Да | Да | Да | Да | Да |
codePointAt() | Возвращает неотрицательное целое число, являющееся значением кодовой точки в стандарте кодирования символов Unicode (Юникод). | 41.0 | 29.0 | 28.0 | 10.0 | Нет | Да |
concat() | Используется для объединения двух, или более строк в одну, при этом метод не изменяет существующие строки, а возвращает новую строку. | Да | Да | Да | Да | Да | Да |
endsWith() | Определяет, совпадает ли конец данной строки с указанной строкой, или символом, возвращая при этом логическое значение. | 41.0 | 17.0 | 28.0 | 9.0 | Нет | Да |
fromCharCode() | Преобразует значение или значения кодовых точек в стандарте кодирования символов UTF-16 (Юникод) в символы и возвращает строковое значение. | Да | Да | Да | Да | Да | Да |
fromCodePoint() | Преобразует значение или значения кодовых точек в стандарте кодирования символов Юникод в символы и возвращает строковое значение. Позволяет работать со значениями выше 65535. | 41.0 | 29.0 | 28.0 | 10.0 | Нет | Да |
includes() | Определяет, содержится ли одна строка внутри другой строки, возвращая при этом логическое значение. | 41.0 | 40.0* | 28.0 | 9.0 | Нет | Да |
indexOf() | Возвращает позицию первого найденного вхождения указанного значения в строке. | Да | Да | Да | Да | Да | Да |
lastIndexOf() | Возвращает позицию последнего найденного вхождения указанного значения в строке. | Да | Да | Да | Да | Да | Да |
localeCompare() | Сравнивает две строки и определяет являются ли они эквивалентными в текущем языковом стандарте. | Да | Да | Да | Да | Да* | Да |
match() | Производит поиск по заданной строке с использованием регулярного выражения (глобальный объект RegExp) и возвращает массив, содержащий результаты этого поиска. | Да | Да | Да | Да | Да | Да |
normalize() | Возвращает форму нормализации в стандарте кодирования символов Unicode (Юникод) для указанной строки. | 34.0 | 31.0 | Да | 10.0 | Нет | Да |
padEnd() | Позволяет дополнить текущую строку, начиная с её конца (справа) с помощью пробельного символа (по умолчанию), или заданной строкой, таким образом чтобы результирующая строка достигла заданной длины. | 57.0 | 48.0 | 44.0 | 10.0 | Нет | 15.0 |
padStart() | Позволяет дополнить текущую строку, начиная с её начала (слева) с помощью пробельного символа (по умолчанию), или заданной строкой, таким образом чтобы результирующая строка достигла заданной длины. | 57.0 | 48.0 | 44.0 | 10.0 | Нет | 15.0 |
raw() | Возвращает необработанную строковую форму строки шаблона. | 41.0 | 34.0 | 28.0 | 10.0 | Нет | Да |
repeat() | Возвращает новый строковый объект, который содержит указанное количество соединённых вместе копий строки на которой был вызван метод. | 41.0 | 24.0 | 28.0 | 9.0 | Нет | Да |
replace() | Выполняет внутри строки поиск с использованием регулярного выражения (объект RegExp), или строкового значения и возвращает новую строку, в которой будут заменены найденные значения. | Да | Да | Да | Да | Да | Да |
search() | Выполняет поиск первого соответствия (сопоставления) регулярному выражению (объект RegExp) внутри строки. | Да | Да | Да | Да | Да | Да |
slice() | Позволяет возвратить новую строку, которая содержит копии символов, вырезанных из исходной строки. | Да | Да | Да | Да | Да | Да |
split() | Позволяет разбить строки на массив подстрок, используя заданную строку разделитель для определения места разбиения. | Да | Да | Да | Да | Да | Да |
startsWith() | Определяет, совпадает ли начало данной строки с указанной строкой, или символом, возвращая при этом логическое значение. | 41.0 | 17.0 | 28.0 | 9.0 | Нет | Да |
substr() | Позволяет извлечь из строки определенное количество символов, начиная с заданного индекса. | Да | Да | Да | Да | Да | Да |
substring() | Позволяет извлечь символы из строки (подстроку) между двумя заданными индексами, или от определенного индекса до конца строки. | Да | Да | Да | Да | Да | Да |
toLocaleLowerCase() | Преобразует строку в строчные буквы (нижний регистр) с учетом текущего языкового стандарта. | Да | Да | Да | Да | Да | Да |
toLocaleUpperCase() | Преобразует строку в заглавные буквы (верхний регистр) с учетом текущего языкового стандарта. | Да | Да | Да | Да | Да | Да |
toLowerCase() | Преобразует строку в строчные буквы (нижний регистр). | Да | Да | Да | Да | Да | Да |
toString() | Возвращает значение строкового объекта. | Да | Да | Да | Да | Да | Да |
toUpperCase() | Преобразует строку в заглавные буквы (верхний регистр). | Да | Да | Да | Да | Да | Да |
trim() | Позволяет удалить пробелы с обоих концов строки. | Да | Да | Да | Да | 9.0 | Да |
valueOf() | Возвращает примитивное значение строкового объекта в виде строкового типа данных. | Да | Да | Да | Да | Да | Да |
Конвертировать с использованием StringBuffer или StringBuilder
StringBuilder и StringBuffer — это классы, используемые для объединения нескольких значений в одну строку. StringBuffer является потокобезопасным, но медленным, тогда как StringBuilder не является поточно-ориентированным, но работает быстрее.
Пример 1
class Method5 { public static void main(String args[]) { int number1 = -1234; StringBuilder sb = new StringBuilder(); sb.append(number1); String str1 = sb.toString(); System.out.println("With StringBuilder method: string = " + str1); StringBuffer SB = new StringBuffer(); SB.append(number1); String str2 = SB.toString(); System.out.println("With StringBuffer method: string = " + str2); } }
Вывод
With StringBuilder method: string = -1234 With StringBuffer method: string = -1234
Объект StringBuilder представляет объект String, который можно изменять и обрабатывать как массив с последовательностью символов. Чтобы добавить новый аргумент в конец строки, экземпляр StringBuilder реализует метод append().
Пример 2
class Method6 { public static void main(String args[]) { String str1 = new StringBuilder().append(1234).toString(); System.out.println("With StringBuilder method: string = " + str1); String str2 = new StringBuffer().append(1234).toString(); System.out.println("With StringBuffer method: string = " + str2); } }
Вывод
With StringBuilder method: string = -1234 With StringBuffer method: string = -1234
Наиболее важным является вызов метода toString(), чтобы получить строковое представление данных.
Поиск с помощью indexOf()
Вы можете искать подстроки в Strings, используя метод indexOf():
String string1 = "Hello World"; int index = string1.indexOf("World");
Индексная переменная будет содержать значение 6 после выполнения этого кода. Метод indexOf() возвращает индекс, в котором находится первый символ в первой соответствующей подстроке. В этом случае W совпадающей подстроки World была найдена по индексу 6. Если подстрока не найдена в строке, метод возвращает -1.
Существует версия метода indexOf(), которая берет индекс, с которого начинается поиск. Таким образом, вы можете искать в строке, чтобы найти более одного вхождения подстроки:
String theString = "is this good or is this bad?"; String substring = "is"; int index = theString.indexOf(substring); while(index != -1) { System.out.println(index); index = theString.indexOf(substring, index + 1); }
Этот код просматривает строку «это хорошо или это плохо?» для вхождений подстроки «is». Для этого используется метод indexOf(substring, index). Параметр index указывает, с какого индекса символа в строке следует начать поиск. В этом примере поиск начинается с 1 символа после индекса, в котором было найдено предыдущее вхождение.
Вывод:
0 5 16 21
Подстрока «is» находится в четырех местах. Два раза в словах «есть» и два раза внутри слова «этот».
Класс Java String также имеет метод lastIndexOf(), который находит последнее вхождение подстроки:
String theString = "is this good or is this bad?"; String substring = "is"; int index = theString.lastIndexOf(substring); System.out.println(index);
Выход — 21, который является индексом последнего вхождения подстроки «is».
Сортировка объектов
Показанный ранее пример Arrays.sort() работает только для массивов примитивных типов данных, которые имеют порядок:
- естественный;
- числовой;
- символьный в таблице ASCII (двоичное число, представляющее символ).
У объектов может не быть естественного порядка сортировки, поэтому вам нужно предоставить другой объект, который может определять порядок ваших объектов. Такой объект называется компаратором — это интерфейс.
Вот первый класс для объектов, которые мы хотим отсортировать:
private static class Employee{ public String name; public int employeeId; public Employee(String name, int employeeId){ this.name = name; this.employeeId = employeeId; } }
Класс Employee — это простая модель сотрудника, у которого есть имя и идентификатор. Вы можете отсортировать массив объектов Employee по имени или по идентификатору сотрудника.
Вот первый пример сортировки массива объектов Employee по их имени с помощью метода Arrays.sort():
Employee[] employeeArray = new Employee; employeeArray = new Employee("Xander", 1); employeeArray = new Employee("John" , 3); employeeArray = new Employee("Anna" , 2); java.util.Arrays.sort(employeeArray, new Comparator() { @Override public int compare(Employee e1, Employee e2) { return e1.name.compareTo(e2.name); } }); for(int i=0; i < employeeArray.length; i++) { System.out.println(employeeArray.name); }
- Сначала объявляется массив.
- Три объекта Employee создаются и вставляются в массив.
- Метод Arrays.sort() вызывается для сортировки массива. В качестве параметра передаем массив employee и реализацию Comparator, которая может определять порядок объектов Employee. Это создает анонимную реализацию интерфейса Comparator.
В примере важно уловить реализацию метода compare() анонимной внутренней реализации интерфейса Comparator. Этот метод возвращает:
- положительное число, если первый объект «больше»(позже в порядке сортировки), чем второй объект;
- 0 — они «равны»(в порядке сортировки);
- отрицательное число, если первый объект «меньше» (ранее в порядке сортировки), чем второй объект.
В приведенном выше примере мы просто вызываем метод String.compare(), который выполняет для нас сравнение (сравнивает имена сотрудников).
После сортировки массива мы перебираем его и выводим имена сотрудников. Вывод:
Anna John Xander
Обратите внимание, как порядок был изменен по сравнению с порядком, в котором они были первоначально вставлены в массив. Сортировка объектов Employee по их идентификатору сотрудника на основании предыдущего примера с измененной реализацией метода compare() анонимной реализации интерфейса Comparator:
Сортировка объектов Employee по их идентификатору сотрудника на основании предыдущего примера с измененной реализацией метода compare() анонимной реализации интерфейса Comparator:
Employee[] employeeArray = new Employee; employeeArray = new Employee("Xander", 1); employeeArray = new Employee("John" , 3); employeeArray = new Employee("Anna" , 2); java.util.Arrays.sort(employeeArray, new Comparator() { @Override public int compare(Employee e1, Employee e2) { return e1.employeeId - e2.employeeId; } }); for(int i=0; i < employeeArray.length; i++) { System.out.println(employeeArray.name); }
Вывод:
Xander Anna John
Чтобы сравнить объекты Employee в массиве сначала по их имени, а если оно совпадает, то по их идентификатору сотрудника, реализация compare():
java.util.Arrays.sort(employeeArray, new Comparator() { @Override public int compare(Employee e1, Employee e2) { int nameDiff = e1.name.compareTo(e2.name); if(nameDiff != 0) { return nameDiff; } return e1.employeeId - e2.employeeId; } });
1 Приведение типов
Переменные примитивных типов (за исключением типа ) используются для хранения разных типов чисел. И хоть типы переменных всегда неизменны, есть место, где можно проводить преобразование типов. И место это — присваивание.
Можно присваивать друг другу переменные разных типов. При этом значение, взятое из переменной одного типа, будет преобразовано в значение другого типа и присвоено второй переменной. В связи с этим можно выделить два вида преобразования типов: расширение и сужение.
Расширение типа похоже на перекладывание из маленькой корзинки в большую — операция проходит незаметно и безболезненно. Сужение типа — это перекладывание из большой корзинки в маленькую: места может не хватить, и что-то придётся выбросить.
Вот типы, отсортированные по размеру «корзинки»:
3 Сужение типов
А что насчет остальных вариантов? Что делать, если нужно переменной типа присвоить значение переменной типа ?
Представьте, что переменная — это корзина. У нас есть корзины разных размеров: 1, 2, 4 и 8 байт. При перекладывании пирожков из меньшей корзины в большую проблем не будет. А вот при перекладывании из большей в меньшую часть пирожков может потеряться.
Это преобразование — от типа большего размера к меньшему — называют сужением типа. При таком присваивании часть числа может просто не поместиться в новую переменную и «остаться за бортом».
При сужении типа мы должны явно показать компилятору, что мы не ошиблись, и отбрасывание части числа сделано осознанно. Для этого используется оператор приведения типа. Это имя типа в круглых скобочках.
В таких ситуациях Java-компилятор требует от программиста указывать оператор преобразования типа. Выглядит в общем виде он так:
Примеры:
Код | Описание |
---|---|
Каждый раз нужно явно указывать оператор преобразования типа |
В данном случае равно , и это кажется излишним. А что если бы было больше?
Код | Описание |
---|---|
Миллион отлично помещается и в тип , и в тип . А вот при присваивании миллиона переменной типа два первых байта были отброшены, и остались только два последних байта. А при присваивании типу вообще остался один последний байт.
Устройство чисел в памяти:
Тип | Двоичная запись | Десятичная запись |
---|---|---|
0b00000000000011110100001001000000 | ||
0b0100001001000000 | ||
0b01000000 |
Тип
Тип , как и тип , занимает два байта, но для их преобразования в друг друга всегда нужно использовать оператор приведения типа. Все дело в том, что тип знаковый, и может содержать значения от до , а тип беззнаковый, и может содержать значения от до .
В нельзя сохранить отрицательные числа, которые могут храниться в . А в нельзя сохранить числа больше , которые могут храниться в .
5 Ввод данных с консоли
Вводить данные с клавиатуры, когда у нас есть объект типа , очень легко.
Чтобы считать с клавиатуры строку, нужна команда:
Когда программа дойдет до выполнения этой строки, она приостановится и будет ждать, пока пользователь введет данные и нажмет клавишу enter. После этого все, что ввел пользователь, будет сохранено в переменную .
Чтобы считать с клавиатуры число, нужна команда:
Тут все аналогично предыдущей команде. Когда программа дойдет до выполнения этой строки, она приостановится и будет ждать, пока пользователь введет данные и нажмет клавишу enter. После этого все, что ввел пользователь, будет преобразовано в число и сохранено в переменную .
Если пользователь ввел данные, которые невозможно преобразовать в целое число, в программе возникнет ошибка, и она завершится.
Чтобы считать с клавиатуры дробное число, нужна команда:
Эта команда полностью аналогична команде , только она проверяет, что введенные данные можно преобразовать в число .
Пример программы, которая считывает с клавиатуры два числа и выводит их сумму:
Примечание
Пользователь может ввести несколько чисел в одной строке, разделив их пробелами: такая ситуация будет корректно обработана методами класса . Однако числа будут считаны программой только после того, как пользователь нажмет .
How to Convert String to Integer in the C Language
Sometimes, a number is input as a string. To use it for any mathematical operation, we have to convert the string to integer. There are two ways to do this.
- The first method is to manually convert the string into an integer.
- The second method is to use the built-in functions.
Manual Conversion
Below is a list of ASCII (American Standard Code for Information Interchange) characters and their decimal value.
ASCII Character Decimal Value 0 48 1 49 2 50 3 51 4 52 5 53 6 54 7 55 8 56 9 57
Numbers are stored in character format within the string. In order to get the decimal value of each string element, we have to subtract it with decimal value of character ‘0.’ Let’s make this clear with the help of an example.
Обрезка посредством trim()
Класс Java String содержит метод trim(), который может обрезать строковый объект. Предназначен для удаления в начале и конце строки пробелов, табуляцию и переход на новую строку:
String text = " And he ran across the field "; String trimmed = text.trim();
После выполнения этого кода усеченная переменная будет указывать на экземпляр String со значением
"And he ran across the field"
Пробельные символы в начале и конце объекта String были удалены. Символ пробела внутри строки не был затронут. Имеется в виду между первым и последним символом, не являющимся пробелом.
Метод trim() не изменяет экземпляр String. Вместо этого он возвращает новый объект Java String, который равен объекту String, из которого он был создан, но с удаленным пробелом в начале и конце строки.
Метод trim() может быть очень полезен для обрезки текста, введенного пользователем в поля ввода. Например, пользователь может ввести свое имя и случайно поставить дополнительный пробел после последнего слова или перед первым словом. Метод trim() — это простой способ удалить такие лишние пробелы.
Подстроки
Вы можете извлечь часть строки — подстроку с помощью метода substring() класса String:
String string1 = "Hello World"; String substring = string1.substring(0,5);
После выполнения этого кода переменная substring будет содержать строку Hello.
Метод substring() принимает два параметра. Первый — это индекс символа первого символа, который будет включен в подстроку. Второй — это индекс последнего символа для включения в подстроку. Параметры означают «от — в том числе до -».
Первый символ в строке имеет индекс 0, второй символ имеет индекс 1 и т. д. Последний символ в строке имеет индекс String.length() — 1.
Integer.parseInt() Method
method is overloaded in two forms:
public static int parseInt(String s) throws NumberFormatException {...} public static int parseInt(String s, int radix) throws NumberFormatException {...}
Both methods throw is argument string is or string length is zero i.e. empty string. The first method also throws exception when string is not a parsable integer in base 10.
int intVal = Integer.parseInt("1001"); System.out.println(intVal); int intVal1 = Integer.parseInt("1001", 8); //base 8 System.out.println(intVal1); int intVal2 = Integer.parseInt("1001", 16); //base 16 System.out.println(intVal2);
Output:
1001 513 4097
Вызов методов Parse и TryParseCalling the Parse and TryParse methods
Методы и игнорируют пробелы в начале и в конце строки, но все остальные символы должны быть символами, которые образуют соответствующий числовой тип (, , , , и т. д.).The and methods ignore white space at the beginning and at the end of the string, but all other characters must be characters that form the appropriate numeric type (, , , , , and so on). Любые пробелы в строке, образующие число, приводят к ошибке.Any white space within the string that forms the number causes an error
Например, можно использовать для анализа «10», «10.3» или » 10 «, но этот метод нельзя использовать для анализа 10 из «10X», «1 0» (обратите внимание на внедренный пробел), «10 .3» (обратите внимание на внедренный пробел), «10e1» (здесь работает ) и т. д.For example, you can use to parse «10», «10.3», or » 10 «, but you can’t use this method to parse 10 from «10X», «1 0» (note the embedded space), «10 .3» (note the embedded space), «10e1» ( works here), and so on. Строку со значением или String.Empty невозможно успешно проанализировать.A string whose value is or String.Empty fails to parse successfully
Вы можете проверить наличие NULL или пустой строки, прежде чем пытаться ее проанализировать, вызвав метод String.IsNullOrEmpty.You can check for a null or empty string before attempting to parse it by calling the String.IsNullOrEmpty method.
В указанном ниже примере демонстрируются успешные и неуспешные вызовы методов и .The following example demonstrates both successful and unsuccessful calls to and .
В следующем примере показан один из подходов к анализу строки, которая, как ожидается, будет включать начальные числовые символы (включая шестнадцатеричные символы) и конечные нечисловые символы.The following example illustrates one approach to parsing a string expected to include leading numeric characters (including hexadecimal characters) and trailing non-numeric characters. Он назначает допустимые символы в начале новой строки перед вызовом метода TryParse.It assigns valid characters from the beginning of a string to a new string before calling the TryParse method. Поскольку анализируемые строки содержат небольшое количество символов, в примере вызывается метод String.Concat для назначения допустимых символов новой строке.Because the strings to be parsed contain a small number of characters, the example calls the String.Concat method to assign valid characters to a new string. Для большей строки можете использовать класс StringBuilder.For a larger string, the StringBuilder class can be used instead.
Примеры
package Edureka; import java.io.*; import java.util.*; public class javaIntegerExamples{ public static void main(String args[]) { int value = 161; // Get the binary equivalent System.out.println("Binary equivalent:"+Integer.toBinaryString(value)); System.out.println("Bit Count:"+Integer.bitCount(value)); //example for byteValue() int Value1=123; Integer a = new Integer(Value1); System.out.println("Byte Value is "+a.byteValue()); //compare two integer values System.out.println(Integer.compare(20, 20)); System.out.println(Integer.compare(20, 19)); System.out.println(Integer.compare(20, 22)); //compare two integers Integer value2 = new Integer(50); System.out.println(value2.compareTo(50)); System.out.println(value2.compareTo(49)); System.out.println(value2.compareTo(51)); //decode the string System.out.println(Integer.decode("0124")); //base8 System.out.println(Integer.decode("0x124")); //base16 } }
1 Сравнение строк
Сравнение — одна из самых частых вещей, которая делается со строками. У класса String более десяти различных методов, которые используются для сравнения строк со строками. Ниже мы рассмотрим 8 основных.
Методы | Описание |
---|---|
Строки считаются равными, если все их символы совпадают. | |
Сравнивает строки, игнорируя регистр (размер) букв | |
Сравнивает строки, возвращает количество одинаковых символов от начала строки. | |
Возвращает количество одинаковых символов от начала строки, игнорирует регистр | |
Сравнивает части строк | |
Проверяет, что текущая строка начинается со строки | |
Проверят, что текущая строка заканчивается на строку |
Допустим, вы хотите написать программу, которая просит пользователя ввести путь к файлу и проверяет, что это за файл по его расширению. Тогда код такой программы мог бы выглядеть примерно так:
Код | Примечания |
---|---|
Создание объекта Чтение строки с консоли Проверяем, что строка оканчивается на заданную строку |
Константы
Если вы используете ту же строку (например, «Hello World») в других объявлениях переменных String, виртуальная машина Java может создать в памяти только один экземпляр String. Таким образом, строковый литерал становится де-факто константой или синглтоном. Различные переменные, инициализированные одной и той же константной строкой, будут указывать на один и тот же экземпляр String в памяти.
String myString1 = "Hello World"; String myString2 = "Hello World";
В этом случае виртуальная машина заставит myString1 и myString2 указывать на один и тот же объект String.
Точнее говоря, объекты, представляющие литералы Java String, получены из пула констант String, который виртуальная машина Java хранит внутри. Это означает, что даже классы из разных проектов, скомпилированные отдельно, но используемые в одном приложении, могут совместно использовать объекты String. Обмен происходит во время выполнения. Это не функция времени компиляции.
Если вы хотите быть уверены, что две строковые переменные указывают на отдельные строковые объекты, используйте оператор new следующим образом:
String myString1 = new String("Hello World"); String myString2 = new String("Hello World");
Даже если значение (текст) двух созданных строк Java одинаково, виртуальная машина Java создаст в памяти два разных объекта для их представления.