Обикновено в a графичен потребителски интерфейс, ще има текстови полета, които очакват от потребителя да въведе числова стойност. Тази цифрова стойност ще завърши в a низ обект, който всъщност не помага на вашата програма, ако искате да направите някаква аритметика. За щастие има класове за обвивка, които предоставят методи за преобразуване на тези стойности на String в числа, а класът String има метод за тяхното преобразуване отново.
Класове за опаковане
Най- примитивни типове данни които се занимават с числа (т.е. байт, int, двойно, плаващо, дълго и кратко) всички имат еквиваленти на класа. Тези класове са известни като опаковъчни класове, тъй като приемат примитивен тип данни и го обграждат с функционалността на клас. Например, клас Double ще има двойна стойност като своите данни и ще предостави методи за манипулиране на тази стойност.
Всички тези класове обвивки имат метод, наречен valueOf. Този метод приема String като аргумент и връща екземпляр от клас обвивка. Например, да кажем, че имаме String със стойност десет:
Номер на низ = "10";
Да имаме този номер като String не ни е от полза, затова използваме класа Integer, за да го преобразуваме в обект Integer:
Integer convertNumber = Integer.valueOf (число);
Сега числото може да се използва като число, а не като String:
convertNumber = превърнато Number + 20;
Можете също така да накарате преобразуването да премине направо към примитивен тип данни:
int convertNumber = Integer.valueOf (число) .intValue ();
За други примитивни типове данни просто ще сложите в правилния клас обвивка - Byte, Integer, Double, Float, Long Short.
Забележка: Трябва да сте сигурни, че String може да бъде анализиран в подходящия тип данни. Ако не може, ще се окажете с грешка по време на изпълнение. Например, опитвайки се да прикрие „десет“ в цяло число:
Номер на низ = "десет";
int convertNumber = Integer.valueOf (число) .intValue ();
ще произведе NumberFormatException, защото компилаторът няма идея "десет" се предполага, че е 10.
По-фино същата грешка ще възникне, ако забравите, че „int“ може да съдържа само цели числа:
Номер на низ: "10.5";
int convertNumber = Integer.valueOf (число) .intValue ();
Компилаторът няма да съкрати номера, той просто ще помисли, че не се вписва в „int“ и че е време да хвърлите NumberFormatException.
Преобразуване на числа в струни
За да превърнете число в String следва същия вид шаблон, както класът String също има метод valueOf. Той може да приеме всеки от примитивните номера на типа данни като аргумент и да създаде String:
int числоTwenty = 20;
Конструиран низ = String.valueOf (numberTwenty);
което поставя "20" като стойност на String на съвместно преобразувано.
или можете да използвате метода toString на който и да е от класовете за обвиване:
Преобразуван низ = Integer.toString (numberTwenty);
Методът toString е общ за всички типове обекти - повечето пъти е просто описание на обекта. За класове с опаковки това описание е действителната стойност, която съдържат. В тази посока преобразуването е малко по-стабилно. Ако вместо целочисления трябваше да се използва двойният клас:
Конструиран низ = Double.toString (числоTwenty);
резултатът не би причинил a грешка по време на изпълнение. Преобразуваната променлива би съдържала низа "20.0".
Има и по-фин начин да конвертирате числа, когато сте свързващи струни. Ако стрингът трябва да бъде изграден като:
String aboutDog = "Моето куче е" + бройТвайсет + "години.";
преобразуването на int числоTwenty се извършва автоматично.