相关文章推荐
朝气蓬勃的李子  ·  中共中央 ...·  3 周前    · 
果断的风衣  ·  RR · 艺术 | ...·  4 月前    · 
谈吐大方的电脑桌  ·  NTU Theses and ...·  7 月前    · 
耍酷的皮带  ·  中国话成为丝路新潮流·  1 年前    · 
完美的蟠桃  ·  百度一下·  1 年前    · 

我在格式化A室数据库的结果时遇到了一些问题。结果出来时是一个大的、长的、不间断的词,像这样 "texta,textb,textc" ,而我需要它们是一个字符串阵列,像这样 "texta","textb","textc" 。所以我的问题是,我如何将查询结果分解,以便与我的API一起使用。

这里是我如何实现数据库功能和检索数据的。

        mUserViewModel = ViewModelProvider(this).get(ViewModel::class.java)
        mUserViewModel.readSomeData.observe(viewLifecycleOwner, Observer { user ->
        val abc = user

然后,我把它解析到数据被POST到我的API的函数中,这就是我准备输出的方式。

        val jArray = JsonArray()
        val element = JsonPrimitive(abc)
        jArray.add(element)
//        val element = JsonPrimitive("""texta","textb","textc""")//this works
        //above is what I was using to test the API when I still putting together the database.

我已经尝试了一些事情,试图达到预期的效果。

第一个是这样的。

val abc = user.split(",").toTypedArray().toString()

this turned the string into this ["[Ljava.lang.String;@e5daa3e"]

第二个是这样的。

    val abc: String = user.toCharArray().map { it.toString() }.toString()

这使得它的每个字母都被分割成这样

["[t, e, x, t, a, ,, t, e, x, t, b, ,, t, e, x, t, c]"]

如果有人能告诉我,如何使我发送给API的文本看起来像这样"texta","textb","textc"。我将非常感激。

如果有帮助的话,字符串将总是10个字符长。

谢谢你的时间。

3 个评论
为什么要在val abc = user.split(",").toTypedArray().toString()中调用toString(方法?)
因为我得到了一个类型不匹配,否则,JsonPrimitive想要一个字符串。如果我只是用out .tostring()打印它,我仍然得到[Ljava.lang.String;@b0e4f60
我不会用kotlin编程,但我认为你要创建另一个字符串,然后用for循环来检查字符串中的每个字符,如果该字符==",",你就把字符串添加到数组中,并把字符串设置为空,否则就把字符追加到字符串中。
java
android
arrays
json
kotlin
m.seigmiller
m.seigmiller
发布于 2021-02-22
1 个回答
Diego Jiménez
Diego Jiménez
发布于 2021-02-22
已采纳
0 人赞同

你可以实现这个目标的方法之一是使用Gson库来序列化对象,这里有一个例子。

val string = "texta,textb,textc"
val typedArray = string.split(",").toTypedArray()