Kotlin перевод числа в строку

Kotlin – Convert integer to string

In this tutorial, you shall learn how to convert an integer value to a string value in Kotlin, using Int.toString() function, with example programs.

Kotlin – Convert integer to string

To convert an integer number to string in Kotlin, we can use Int.toString() method.

Steps to convert an integer to a string

  1. Consider that we are given an integer value n .
  2. Call the toString() method on the integer n , and the function returns a string value created from this integer.

Example

In the following program, we read a number n from user and reverse it using the above steps.

Enter an integer : 52413 String value : 52413

Related tutorials for the above program

Conclusion

In this Kotlin Tutorial, we learned how to convert a given integer to a string using Int.toString() method.

  • How to Check if String Ends with Specified Character in Kotlin?
  • How to Check if String Ends with Specified String in Kotlin?
  • How to Check if String Starts with Specified Character in Kotlin?
  • How to Check if String Starts with Specified String Value in Kotlin?
  • How to Check if Two Strings are Equal in Kotlin?
  • How to Compare Strings in Kotlin?
  • How to Compare Strings in Kotlin?
  • How to Create an Empty String in Kotlin?
  • How to Filter Characters of String in Kotlin?
  • How to Filter List of Strings based on Length in Kotlin?
  • How to Filter only Non-Empty Strings of Kotlin List?
  • How to Filter only Strings from a Kotlin List?
  • How to Get Character at Specific Index of String in Kotlin?
  • How to Initialize String in Kotlin?
  • How to Iterate over Each Character in the String in Kotlin?
  • How to Remove First N Characters from String in Kotlin?
  • How to Remove Last N Characters from String in Kotlin?
  • How to check if a String contains Specified String in Kotlin?
  • How to create a Set of Strings in Kotlin?
  • How to define a List of Strings in Kotlin?
  • How to define a String Constant in Kotlin?
  • How to get Substring of a String in Kotlin?
  • Kotlin String Concatenation
  • Kotlin String Length
  • Kotlin String Operations
  • Kotlin String.capitalize() – Capitalize First Character
  • Kotlin – Split String to Lines – String.lines() function
  • Kotlin – Split String – Examples
  • Kotlin – String Replace – Examples
  • Kotlin – String to Integer – String.toInt()
  • [Solved] Kotlin Error: Null can not be a value of a non-null type String
Читайте также:  Create console in javascript

Источник

Kotlin перевод числа в строку

Нередко может возникать задача по преобразованию типов, например, чтобы использовать данные одного типа в констексте, где требуются данные другого типа. В этом случае Kotlin представляет ряд возможностей по преобразованию типов.

Встроенные методы преобразования типов

Для преобразования данных одного типа в другой можно использовать встроенные следующие функции, которые есть у базовых типов (Int, Long, Double и т.д.) (Конкретный набор функций для разных базовых типов может отличаться. ):

Все эти функции преобразуют данные в тот тип, которые идет после префикса to: to Byte .

val s: String = "12" val d: Int = s.toInt() println(d)

В данном случае строка s преобразуется в число d. Просто так передать строку переменной типа Int, мы не можем, несмотря на то, что вроде бы строка и содержит число 12:

Однако надо учитывать, что значение не всегда может быть преобразовано к определенному типу. И в этом случае генерируется исключение. Соответственно в таких случаях желательно отлавливать исключение:

val s: String = «tom» try < val d: Int = s.toInt() println(d) >catch(e: Exception)

Smart cast и оператор is

Оператор is позволяет проверить выражение на принадлежность определенному типу данных:

Этот оператор возвращает true , если значение слева от оператора принадлежит типу, указанному справа от оператора. Если локальная переменная или свойство успешно пройдет проверку на принадлежность определенному типу, то далее нет нужды дополнительно приводить значение к этому типу. Данные преобразования еще называются smart casts или «умные преобразования».

Данный оператор можно применять как к базовым типам, но к собственным классам и интерфейсам, которые находятся в одной и той же иерархии наследования.

fun main() < val tom = Person("Tom") val bob = Employee("Bob", "JetBrains") checkEmployment(tom) // Tom does not have a job checkEmployment(bob) // Bob works in JetBrains >fun checkEmployment(person: Person) < // println("$works in $") // Ошибка - у Person нет свойства company if(person is Employee) < println("$works in $") > else < println("$does not have a job") > > open class Person(val name: String) class Employee(name: String, val company: String): Person(name)

Здесь класс Employee наследуется от класса Person. В функции checkEmployment() получаем объект Person. С помощью оператора is проверяем, представляет ли он тип Employee (так как не каждый объект Person может представлять тип Employee). Если он представляет тип Employee, то выводим название его компании, если он не представляет тип Employee, то выводим, сообщение, что он безработный.

Причем даже если значение представляет тип Employee, то до применения оператора is оно тем не менее принадлежит типу Person. И только применение оператора is преобразует значение из типа Person в тип Employee.

Также можно применять другую форму оператора — !is . Она возвращает true , если значение НЕ представляет указанный тип данных:

fun main() < val tom = Person("Tom") val bob = Employee("Bob", "JetBrains") checkEmployment(tom) // Tom does not have a job checkEmployment(bob) // Bob works in JetBrains >fun checkEmployment(person: Person) < // println("$works in $") // Ошибка - у Person нет свойства company if(person !is Employee) < println("$does not have a job") > else < println("$works in $") > > open class Person(val name: String) class Employee(name: String, val company: String): Person(name)

Однако, что, если свойство company имеет пустую строку, например, val bob = Employee(«Bob», «») , то есть фактически компания не указана. А мы хотим выводить компанию, если это свойство имеет какое-нибудь содержимое. В этом случае мы можем выполнить проверку на длину строку сразу же после применения оператора is :

fun checkEmployment(person: Person) < if(person is Employee && person.company.length >0) < println("$works in $") > else < println("$does not have a job") > >

компилятор уже видит, что person — это объект типа Employee , поэтому позволяет обращаться к его свойствам и функциям.

Если необходимо определить различные действия в зависимости от типа объекта, то удобно использовать конструкцию when :

fun identifyPerson(person: Person) < when(person)< is Manager ->println("$ is a manager") is Employee -&t; println("$ is an employee") is Person -> println("$ is just a person") > > open class Person(val name: String) open class Employee(name: String, val company: String): Person(name) class Manager(name: String, company: String): Employee(name, company)

Ограничения умных преобразований

Подобные smart-преобразования тем не менее имеют ограничения. Они могут применяться, только если компилятор может гарантировать, что переменная не изменила своего значения в промежутке между проверкой и использованием. Для smart-преобразований действуют следующие правила:

  1. smart-преобразования применяются к локальным val-переменным (за исключением делегированных свойств)
  2. smart-преобразования применяются к val-свойствам, за исключением свойств с модификатором open (то есть открытых к переопределению в производных классах) или свойств, для которых явным образом определен геттер
  3. smart-преобразования применяются к локальным var-переменным (то есть к переменным, определенным в функциях), если переменная не изменяет своего значения в промежутке между проверкой и использованием и не используется в лямбда-выражении, которое изменяет ее, а также не является локальным делегированным свойством
  4. к var-свойствам smart-преобразования не применяются

Рассмотрим некоторые случаи. Возьмем последнее правило про var-свойства:

fun main() < val tom = Person("Tom") if(tom.phone is SmartPhone)< println("SmartPhone: $, OS: $") // ! Ошибка > else< println("Phone: $") > > open class Phone(val name: String) class SmartPhone(name: String, val os: String) : Phone(name) open class Person(val name: String)

Здесь класс Person хранит var-свойство класса Phone, которому присваивается объект класса SmartPhone. Соответственно в выражении:

очевидно, что свойство tom.phone представляет класс SmartPhone, однако поскольку это свойство определено с помощью var , то к нему не применяются smart-преобразования. То есть если в данном случае мы заменим var на val , то у нас проблем не возникнет.

Или второе правило — изменим класс Person, определив для свойства геттер:

open class Person(val name: String)

В соответствии с вторым правилом опять же к такому свойству не применяются smart-преобразования, так как оно имеет геттер.

Явные преобразования и оператор as

С помощью оператора as мы можем приводить значения одного типа к другому типу:

Слева от оператора указывается значение, а справа — тип данных, в которых надо преобразовать значение. Например, преобразуем значение типа String? в тип String :

Здесь переменная hello хранит строку и может быть удачно преобразована в значение типа String . Однако если переменная hello равна null :

val hello: String? = null val message: String = hello as String println(message)

В этом случае преобразование завершится неудачно — ведь значение null нельзя преобразовать в значение типа String . Поэтому будет сгенерировано исключение NullPointerException .

Чтобы избежать генерации исключения мы можем применять более безопасную версию оператора as? , которая в случае неудачи преобразования возвращает null.

val hello: String? = null val message: String? = hello as? String println(message)

В данном случае оператор as? возвратит null, так как строку нельзя преобразовать в число.

Также можно применять данный оператор к преобразованиям своих типов:

fun main() < val tom = Person("Tom") val bob = Employee("Bob", "JetBrains") checkCompany(tom) checkCompany(bob) >fun checkCompany(person: Person) < val employee = person as? Employee if (employee!=null)< println("$works in $") > else < println("$is not an employee") > > open class Person(val name: String) open class Employee(name: String, var company: String): Person(name)

Здесь функция checkCompany() принимает объект класса Person и пытается преобразовать его в объект типа Employee, который унаследован от Employee. Но если каждый объект Employee представляет также объект Person (каждый работник является человеком), то не каждый объект Person представляет объект Employee (не каждый человек является работником). И в этом случае чтобы получить значение типа Employee, применяется оператор as? . Если объект person представляет тип Employee, то возвращается объект этого типа, иначе возвращается null . И далее мы можем проверить на значение null и выполнить те или иные действия.

Консольный вывод программы:

Tom is not an employee Bob works in JetBrains

Источник

Преобразование целого числа в строку в Kotlin

В этой статье рассматриваются различные способы преобразования целого числа в строку в Kotlin. Если целое число отрицательное, знак должен быть сохранен.

1. Использование toString() функция

Рекомендуемое решение — использовать toString() функция, которая возвращает строковое представление указанного аргумента.

2. Использование String.format() функция

В качестве альтернативы вы можете использовать String.format() функция, которая возвращает отформатированную строку, подставляя указанные аргументы.

3. Использование StringBuilder.append() функция

Другой вероятный способ преобразовать целое число в строку — использовать append() функция StringBuilder класс, который перегружен для приема данных любого типа.

4. Использование DecimalFormat.format() функция

DecimalFormat Класс предоставляет множество функций для анализа и форматирования чисел. Мы можем использовать его для форматирования целого числа для создания строки, как показано ниже:

5. Использование оператора Plus

Наконец, вы можете соединить данное целое число с пустой строкой, используя + оператор или plus() Функция для создания строкового представления целого числа.

Вот и все о преобразовании целого числа в строку в Kotlin.

Средний рейтинг 4.75 /5. Подсчет голосов: 24

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Оцените статью