Как я могу рефакторинг этого кода Kotlin в Android Studio - PullRequest
0 голосов
/ 14 апреля 2019
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import com.example.student.rexam.R.id.text

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
    //etInput is an EditText element
    //tvOutput is a TextView element

    /**
     * listener for a button in this activity
     */


    fun filter(v: View) {

        val input = etInput.text.toString()
        val shortWords = shortWords(input)
        val builder = StringBuilder()

        for (word in shortWords) {
            builder.append("$word, ")

        }

        val output = builder.toString()

        tvOutput.setText("$output (${percentageShortWords()}%)")
    }

    val maxWordLength = 3

    fun shortWords(text: String): List<String> {

        var words = text.split(" ").toMutableList()

        val iterator = words.iterator()
        while (iterator.hasNext()) {
            if (iterator.next().length > maxWordLength) {
                iterator.remove()
            }
        }
        return words
    }

    fun percentageShortWords(): Int {


        val input = etInput.text.toString()
        var words = input.split(" ").toMutableList()
        val inputCount = words.count()
        val outputCount = shortWords(input).count()
        return ((outputCount.toDouble() / inputCount.toDouble()) * 100).toInt()
    }
}

как мне преобразовать этот код в улучшенную форму? etInput - элемент EditText, а tvOutput - элемент TextView. только небольшая помощь будет иметь большое значение это код Котлина, который должен быть преобразован в альтернативную или улучшенную форму. Я новичок в программировании, мне действительно нужно это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...