【问题标题】:Android: Split a string [duplicate]Android:拆分字符串[重复]
【发布时间】:2014-06-04 08:59:47
【问题描述】:

所有其他类似线程的解决方案使我的应用程序崩溃,这就是我必须创建此线程的原因。

字符串:

    FileInputStream fis = null;
    String collected = null;
    try {
        File file = new File(FILENAME);
        if(!file.exists())
        createfileinstantly();
        fis = openFileInput(FILENAME);
        byte[] dataArray = new byte [fis.available()];
        while (fis.read(dataArray) != -1)
           {
           collected = new String(dataArray); 
           } 
       ....

这里,“collected”是我要拆分的字符串。字符串的默认值为:“0|0|0|0|0|0|0|0|0” 所以我想用“|”来分隔这些值。

当我在上述代码之后添加以下代码时,我得到了 9 次 null:

    String[] separated = collected.split("|");
    String splay = separated[0];
    String swin = separated[1];
    String sall = separated[2];
    String sanimal = separated[3];
    String scountry = separated[4];
    String sfruit = separated[5];
    String shuman = separated[6];
    String soccupation = separated[7];
    String smisc = separated[8];

为了测试代码,我使用了一个名为 dataResults 的 TextView:

dataResults.setText(splay+swin+sall+sanimal+scountry+sfruit+shuman+soccupation+smisc);

我原本想将这些字符串转换为整数(我仍然想)所以起初我认为转换为整数时出现了一些问题。但经过一些测试后,问题在于拆分字符串。但是为了在主要问题之后更安全,您能否添加如何将拆分后的字符串转换为整数。

非常感谢!

编辑:即使更改了“|”到“\\|”它仍然显示“null”9次。 这是否足够不同?

【问题讨论】:

  • 即使更改了“|”到“\\|”它仍然显示“null”9次。这足够不同吗?
  • 这可以用 '|' 分割字符串.请确保您的字符串具有有效数据..
  • @Arjun Jadeja 试试这个...collected.split("\\|");但在你的情况下,你应该得到 9 次 Null,因为你的字符串包含 0 的空值。
  • 字符串不包含“null”值。我尝试在 TextView 中显示字符串,没有问题。

标签: android


【解决方案1】:

该 |字符需要转义。

String[] separated = collected.split("\\|");

【讨论】:

  • 正如 Raghunandan 所说,它必须是 \\|。这是因为 split() 函数使用了正则表达式。
  • 啊,你说得对,我暂时忘记了我将 \ 赋予字符串,并且 Java 也需要转义。抱歉抱歉,已编辑,谢谢:)
  • 有人介意在这里帮助我吗?
  • 从字节数组中读取字符串后是否正确存储字符串? System.out.println(collected) 打印出什么?
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 2015-12-07
  • 2016-01-15
  • 2017-07-22
  • 2011-07-06
  • 2011-09-03
  • 2016-03-15
  • 2017-02-05
相关资源
最近更新 更多