# Adding Value an Empty Array

**URL:** <https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171>\
**Category:** Language Design\
**Created:** [August 22, 2018, 9:29pm UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171 "2018-08-22T21:29:11Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![l3ronson](https://avatars.discourse-cdn.com/v4/letter/l/ee59a6/32.png) [@l3ronson](https://discuss.kotlinlang.org/u/l3ronson)\
**Post date:** [August 22, 2018, 9:29pm UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/1 "2018-08-22T21:29:11Z")

</div>

Hi Everyone,

I’m just a beginner in Kotlin. My question maybe seems stupdi but i need some help. I define an empty array and i need to add some values to array in a loop. My code is below.

```
fun main(args: Array<String>) {

print("Enter a Word")

var word : String = readLine()!!
var letters = emptyArray<Char>()

for (i in 0..word.length - 1) {
    
    var OneLetter: Char = word[i].toChar()

    var number : Int = -1
    letters[number++] = OneLetter
}

print(letters) }

```

---

<div class="post-metadata">

**Author:** ![Eliote](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/eliote/32/7934_2.png) [@Eliote](https://discuss.kotlinlang.org/u/Eliote)\
**Post date:** [August 22, 2018, 10:10pm UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/2 "2018-08-22T22:10:27Z")

</div>

`emptyArray` returns a zero length array. What you want is a `CharArray(size)`.  
And this will also fail “`letters[number++]`” because the post-increment operator will, as the name says, increment the value after returning it. So in the first iteration `number` will be `-1`.

---

<div class="post-metadata">

**Author:** ![l3ronson](https://avatars.discourse-cdn.com/v4/letter/l/ee59a6/32.png) [@l3ronson](https://discuss.kotlinlang.org/u/l3ronson)\
**Post date:** [August 22, 2018, 10:26pm UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/3 "2018-08-22T22:26:58Z")

</div>

should i cgange the code as letters[++number] = OneLetter ? And also CharArray(Size) bu i don’t know the size, can be input a random word.

---

<div class="post-metadata">

**Author:** ![darksnake](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/darksnake/32/2479_2.png) [@darksnake](https://discuss.kotlinlang.org/u/darksnake)\
**Post date:** [August 23, 2018, 5:41am UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/4 "2018-08-23T05:41:53Z")

</div>

Kotlin like java has fixed size array, you can’t increase its size once it is created. You should use `MutableList` instead.

---

<div class="post-metadata">

**Author:** ![Wasabi375](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/wasabi375/32/4741_2.png) [@Wasabi375](https://discuss.kotlinlang.org/u/Wasabi375)\
**Post date:** [August 23, 2018, 12:07pm UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/5 "2018-08-23T12:07:21Z")

</div>

there’s another problem. You declare `numbers` inside of the for loop. So you will only ever set the first value of the array. The rest will stay empty.

---

<div class="post-metadata">

**Author:** ![l3ronson](https://avatars.discourse-cdn.com/v4/letter/l/ee59a6/32.png) [@l3ronson](https://discuss.kotlinlang.org/u/l3ronson)\
**Post date:** [August 23, 2018, 6:32pm UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/6 "2018-08-23T18:32:32Z")

</div>

Thanks Everyone,

I solved like this:

```
fun main(args: Array<String>) {

print("Enter a Word")

var word : String = readLine()!!
var letters : MutableList<Char> = mutableListOf<Char>()

for (i in 0..word.length - 1) {

    var OneLetter: Char = word[i].toChar()

    letters.add(OneLetter)

}
print(letters)

```

}

---

<div class="post-metadata">

**Author:** ![Wasabi375](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/wasabi375/32/4741_2.png) [@Wasabi375](https://discuss.kotlinlang.org/u/Wasabi375)\
**Post date:** [August 23, 2018, 6:34pm UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/7 "2018-08-23T18:34:53Z")

</div>

Nice. Instead of `0..word.length - 1` you can use `0 until word.length`. It does the same but looks a bit nicer 😉

---

<div class="post-metadata">

**Author:** ![miguelangellv](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/miguelangellv/32/2432_2.png) [@miguelangellv](https://discuss.kotlinlang.org/u/miguelangellv)\
**Post date:** [August 24, 2018, 11:39am UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/8 "2018-08-24T11:39:03Z")

</div>

You can use

```kotlin
fun main() {
  val word : String = readLine()!!
  val letters = Array(word.length) { word[it] }
  print(letters)
}

```

---

<div class="post-metadata">

**Author:** ![darksnake](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/darksnake/32/2479_2.png) [@darksnake](https://discuss.kotlinlang.org/u/darksnake)\
**Post date:** [August 24, 2018, 11:46am UTC](https://discuss.kotlinlang.org/t/adding-value-an-empty-array/9171/9 "2018-08-24T11:46:36Z")

</div>

```kotlin
fun main() {
  readLine()?.let{ word ->
    print(Array(word.length) { word[it] })
  } ?: error("oops!")
}

```

🍷
