Java 获取字符数组的子数组

Java 获取字符数组的子数组,java,Java,假设我有一个字符数组,其中包含元素{'.','-','.','-','-'}。 我想检索子数组{'.','-'},并将其转换为字符串“-”。 我使用了以下语句 String temp = Arrays.toString((Arrays.copyOfRange(s,0,2))); 但当我打印temp时,它会打印[,-],也就是temp=“[,-]” 所以temp是不纯字符串,我只想要temp中的{'.','-'}这些字符,即temp=“.-” 我该怎么办?以下几点应该有效: String tem

假设我有一个字符数组,其中包含元素
{'.','-','.','-','-'}
。 我想检索子数组
{'.','-'}
,并将其转换为字符串
“-”
。 我使用了以下语句

String temp = Arrays.toString((Arrays.copyOfRange(s,0,2)));
但当我打印temp时,它会打印
[,-]
,也就是
temp=“[,-]”

所以temp是不纯字符串,我只想要temp中的
{'.','-'}
这些字符,即
temp=“.-”


我该怎么办?

以下几点应该有效:

String temp=String.valueOf(Arrays.copyOfRange(s,0,2))

使用将构建一个
字符串,如
[,…,]
,如文档中所述:

返回指定数组内容的字符串表示形式。字符串表示法由数组元素列表组成,用方括号(“[]”)括起来。相邻元素由字符“,”分隔(逗号后跟空格)。元素通过String.valueOf(char)转换为字符串。如果a为null,则返回“null”

这解释了为什么会得到
“[,-]”
,但可以使用

公共字符串(char[]值)

分配新字符串,使其表示字符数组参数[…]中当前包含的字符序列

还是静态方法

publicstaticstringvalueof(char[]data)

返回字符数组参数[…]的字符串表示形式


将此部分用于您的代码:


String temp=String.valueOf((Arrays.copyOfRange(s,0,2))

对于类似这样的简单内容,可以使用:
Arrays.toString((Arrays.copyOfRange(a,0,2)).replaceAll(“\\s+\\\[\\\]\,”,”)。在这里,我们只需删除Arrays.toString()方法使用正则表达式与String.replaceAll()方法生成的不需要的字符。正则表达式基本上是说,如果遇到,则替换所有空格(\\s+);如果遇到,则替换所有开方括号(\\[);如果遇到,则替换所有闭方括号(\\]);如果遇到,则替换所有逗号(,),并将其替换为空字符串(无)。@AxelH-我从来没有说过这更简单。这只是众多方法中的另一种。但提供的数组中不存在逗号;)@我明白了…英语显然不是你的母语。
String s1 = new String(Arrays.copyOfRange(s,0,2));
String s2 = String.valueOf(Arrays.copyOfRange(s,0,2));