【发布时间】:2021-07-30 06:38:45
【问题描述】:
我为toByteArray() 做了一个测试代码。
abc 变量接收一个String "567" 并将其转换为ByteArray 并输出,总是这样写。
I/System.out: abc = 567
I/System.out: [B@fde8d29
但是,当我在EditText 中输入"567" 作为字符串并将其转换为ByteArray 时,值总是以不同的方式写入,如下所示。
I/System.out: def = 567
[B@44e82b
I/System.out: def = 567
[B@b6d0134
I/System.out: def = 567
[B@cae8059
I/System.out: def = 567
[B@251342a
I/System.out: def = 567
[B@e19d4f7
我正在实现一个套接字程序,我需要在EditText 中获取一个String 并将其发送到字节序列中,但是值总是在变化。
我该如何解决这个问题?
package com.cfsuman.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var abc = "567"
println("abc = ${abc}")
var test1= abc.toByteArray()
println(test1)
button.setOnClickListener {
if (enter.getText().toString() != "") {
var def = (enter.getText()).toString()
println("def = ${def}")
var test2 = def.toByteArray()
println(test2)
}
}
}
}
【问题讨论】:
-
"这些值的写法总是不同的,如下所示。":每个
toByteArray()调用都会创建一个ByteArray的新实例。将此传递给println会调用toString函数,该函数会为您提供该特定实例的唯一标识符。