gpt4 book ai didi

Java 将字符串拆分为数组

转载 作者:行者123 更新时间:2023-12-01 17:11:13 25 4
gpt4 key购买 nike

我有一个从网站提取数据的爬虫,我得到以下字符串:

    String s = "                 --                 Android 2.3.1 (Gingerbread) --                --                  --                 --                   --                  --                  --                 --                 8" Wide LCD - tela sensível ao toque (resistiva) --                 --                 800 x 600 (4:3) --                --                  --                 --                   --                  --                  --                 --                 1,2 GHz ARM Cortex A8 Core (RK2918) --               --                 4 GB (Memória Flash) e DRAM 512 Mb, DDR3 --                  --                 Slot para cartão Micro SD (Máx. 32 GB) --                --                 Integrado, suporta rotação de tela --                --                 Sim --               --                 Sim --               --                 Suporte a multi idioma: Português, Inglês, Francês, Espanhol, Chinês --                  --                 Navegador para Internet, vídeo, foto e áudio players,e-mail, calculadora, gravador de áudio, suporte a e-book, etc. --               --                   --                  --                  --                 --                 802.11 b/g/n (até 300 Mbps) --               --                 2.1 --               --                 USB 2.0 e Mini USB --                --                   --                  --                  --                 --                 14,65 x 21,50 x 1,45 --                  --                 525g --                   --                  --                 --                 Recarregável, Litium (4700 mAh, 3,7 V) --";

我需要将该字符串拆分为一个数组,但丢弃空的数组,所以我这样做了:

String sr[] = s.split(" -- ");
List<String> list = new ArrayList<String>(Arrays.asList(sr));
list.removeAll(Arrays.asList("", null));

但我不断得到以下结果

[               ,               Android 2.3.1 (Gingerbread),                 ,               ,              ,                ,               ,               ,              ,               8&quot; Wide LCD - tela sensível ao toque (resistiva),              ,               800 x 600 (4:3),                 ,               ,              ,                ,               ,               ,              ,               1,2 GHz ARM Cortex A8 Core (RK2918),                ,               4 GB (Memória Flash) e DRAM 512 Mb, DDR3,               ,               Slot para cartão Micro SD (Máx. 32 GB),                 ,               Integrado, suporta rotação de tela,                 ,               Sim,                ,               Sim,                ,               Suporte a multi idioma: Português, Inglês, Francês, Espanhol, Chinês,               ,               Navegador para Internet, vídeo, foto e áudio players,e-mail, calculadora, gravador de áudio, suporte a e-book, etc.,                ,                ,               ,               ,              ,               802.11 b/g/n (até 300 Mbps),                ,               2.1,                ,               USB 2.0 e Mini USB,                 ,                ,               ,               ,              ,               14,65 x 21,50 x 1,45,               ,               525g,                ,               ,              ,               Recarregável, Litium (4700 mAh, 3,7 V) --]

我只想要数组中不为空的东西我的猜测是因为字符串并不是真正的空,而且我得到了一些我无法摆脱的 HTML 空白内容。

执行 s.split("\\s+(--\\s+)+"); 后;数组仍然保留空的东西:

[, Android 2.3.1 (Gingerbread),  ,  ,  ,  ,  , 8&quot; Wide LCD - tela sensível ao toque (resistiva), 800 x 600 (4:3),  ,  ,  ,  ,  , 1,2 GHz ARM Cortex A8 Core (RK2918), 4 GB (Memória Flash) e DRAM 512 Mb, DDR3, Slot para cartão Micro SD (Máx. 32 GB), Integrado, suporta rotação de tela, Sim, Sim, Suporte a multi idioma: Português, Inglês, Francês, Espanhol, Chinês, Navegador para Internet, vídeo, foto e áudio players,e-mail, calculadora, gravador de áudio, suporte a e-book, etc.,  ,  ,  , 802.11 b/g/n (até 300 Mbps), 2.1, USB 2.0 e Mini USB,  ,  ,  , 14,65 x 21,50 x 1,45, 525g,  ,  , Recarregável, Litium (4700 mAh, 3,7 V) --]

最佳答案

你可以试试这个:

String sr[] = s.split("\\s+--\\s+");

输入 "\\s+" 将采用任意数量的空格,而不是仅包含一个空格的 "" (如果您只想要 >space 字符要考虑在内,请将 \\s 替换为文字 space 字符)。如果您想避免数组中的所有 emply 元素,请尝试:

String sr[] = s.split("\\s+(--\\s+)+");

拥有 (--\\s+)+ 意味着即使该模式重复,也会将它们全部删除。

关于Java 将字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com