Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Arrays.asList从字符串创建数组,然后省略数组中的第一个单词_Java_Arrays - Fatal编程技术网

Java Arrays.asList从字符串创建数组,然后省略数组中的第一个单词

Java Arrays.asList从字符串创建数组,然后省略数组中的第一个单词,java,arrays,Java,Arrays,我知道可能还有其他方法可以解决这个问题,但我想尝试并继续这样做,我尝试用一个字符串创建一个简单的列表,拆分为一个数组,并尝试获得如下输出: [A、B、C、D、E、F、G、H] 我使用一个带有键的HashMap放入数组,然后使用键“mode”从中获取数组列表 目前,我得到的输出是“[mode,A,B,C,D,E,F,G,H]”,但我想从结果中省略键,但我不想只在输出上执行分割(“mode”), 我想知道是否有办法更改原始字符串: String test=“模式A、B、C、D、E、F、G、H” 因此

我知道可能还有其他方法可以解决这个问题,但我想尝试并继续这样做,我尝试用一个字符串创建一个简单的列表,拆分为一个数组,并尝试获得如下输出:

[A、B、C、D、E、F、G、H]

我使用一个带有键的HashMap放入数组,然后使用键“mode”从中获取数组列表

目前,我得到的输出是“[mode,A,B,C,D,E,F,G,H]”,但我想从结果中省略键,但我不想只在输出上执行分割(“mode”), 我想知道是否有办法更改原始字符串:

String test=“模式A、B、C、D、E、F、G、H”

因此,我可以得到如下输出:

[A、B、C、D、E、F、G、H]

而不是:

[模式A、B、C、D、E、F、G、H]

我真正想做的是。。但也有同样的问题,我想解决正则表达式的问题,这基本上是我从另一个人的代码中得到的想法-我对这里的正则表达式模式感到困惑,如果有人能解释?使用list.remove(0)从列表中删除第一个元素

List<String> vals = Modes.get("mode");
            vals.remove(0);

            System.out.println(vals);

您还可以使用guava库中的filter方法过滤掉任何值。。在这种情况下,可以按照以下步骤进行:

List<String> filteredList = Lists.newArrayList(Collections2.filter(Arrays.asList(test.split(",")), Predicates.containsPattern("^\\w{1,1}$")));
List-filteredList=Lists.newArrayList(Collections2.filter(Arrays.asList(test.split(“,”),Predicates.containsPattern(“^\\w{1,1}$”));

这意味着它将拆分字符串以列出并过滤掉任何长度超过1的单词。您可以调整模式以过滤掉任何内容。

另一种方法是删除第一个元素和它前面的逗号:

String test = "mode,A,B,C,D,E,F,G,H";

int firstComma = test.indexOf(',');
String substring = test.substring(firstComma + 1);

System.out.println(substring); // this is the result

似乎是,如果VAL保证其第一项是您不想要的,则可以使用remove(0)函数删除第一项。加入一些验证以确保它是您想要删除的,viola
(?感谢boxed_uuu_;,我应该尝试Javadoc,我搜索了错误的源字符串test=“A,B,C,D,E,F,G,mode”)实际上是我问题的解决方案,但我想我会使用下面的答案(因为它确实回答了我最初的问题)好的,好的。这是可行的,但是有没有办法修改原始字符串,使其不显示?我尝试了类似字符串测试=“mode=[A,B,C,D,E,F,G,H]”的方法,但这只给出了null。也许Java正则表达式有一种方法……我必须研究一下。。
List<String> filteredList = Lists.newArrayList(Collections2.filter(Arrays.asList(test.split(",")), Predicates.containsPattern("^\\w{1,1}$")));
String test = "mode,A,B,C,D,E,F,G,H";

int firstComma = test.indexOf(',');
String substring = test.substring(firstComma + 1);

System.out.println(substring); // this is the result