字符串反转程序,Kotlin
我最近决定开始学习 Kotlin,并且我已经开始了一个小项目来创建一个输出用户输入字符串的程序,但反过来。
我已经构建了一个版本,它使用 Typed Array 来存储用户给定的字符串,然后在返回字符串之前反转该数组中的每个单词,但反过来。目前它没有按预期工作,当程序运行时,它不会崩溃并且我没有错误日志,但程序输出看起来像:[Ljava.lang.string;@2d112c3。例如,我期望的输出是:用户给定的字符串:Hello World,程序输出:olleH dlroW。我在网上环顾四周,看到了一些其他类似性质的程序,但到目前为止,我无法解决我的版本中的问题。
acitivty_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/useButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="158dp"
android:layout_marginEnd="159dp"
android:layout_marginBottom="275dp"
android:text="Reverse String"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<EditText
android:id="@+id/userInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="240dp"
android:layout_marginEnd="101dp"
android:ems="10"
android:hint="Enter a Word or String"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/programOutput"
android:layout_width="210dp"
android:layout_height="42dp"
android:layout_marginStart="100dp"
android:layout_marginTop="41dp"
android:layout_marginEnd="101dp"
android:layout_marginBottom="40dp"
android:text=""
app:layout_constraintBottom_toTopOf="@+id/useButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/userInput" />
</androidx.constraintlayout.widget.ConstraintLayout>
主活动.kt
@file:Suppress("UNUSED_CHANGED_VALUE")
package com.example.stringreversal
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val userString = findViewById<EditText>(R.id.userInput)
val submitButton = findViewById<Button>(R.id.useButton)
val changeText = findViewById<TextView>(R.id.programOutput)
submitButton.setOnClickListener {
val getString = userString.text
val typedArray: Array<String> = getString.split(" ").toTypedArray()
val count = typedArray.count()
var nul: Int = 0
while (nul <= count) {
for (word in typedArray) {
word.reversed()
}
nul++ }
val reverseString = typedArray.toString()
changeText.text = reverseString
}
}
}
回答
我认为你应该使用typedArray.joinToString(" ")而不是typedArray.toString()