2017-12-18 111 views
-1

假设我有包含元素{'.','-','.','-','-'}的字符数组。 我想检索子数组{'.','-'}并将其转换为字符串".-"。 我用下面的语句获取字符数组的子数组

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

但是当我打印的临时然后打印[.,-]temp = "[.,-]"
所以临时是不纯的字符串,我只想要{'.','-'}这些字符的温度是temp =".-"

我该怎么办?

+0

for像这样简单的可能使用:'Arrays.toString((Arrays.copyOfRange(a,0,2)))。replaceAll(“\\ s + | \\ [| \\] |,”,“”);'。在这里,我们简单地使用正则表达式来删除我们不希望使用String.replaceAll()方法生成的Arrays.toString()方法生成的字符。正则表达式基本上是指如果遇到,则替换所有空格(** \\ s + **),或者如果遇到或替换所有空心方括号(** \\\ [**)或替换所有方括号(** \\\ ] **),如果遇到或替换所有逗号(**,**),并将其替换为空字符串(无)。 – DevilsHnd

+0

@AxelH - 我从来没有说过它更简单。这只是**多种方式中的另一种方式。但是逗号并不在提供的数组中;) – DevilsHnd

+0

@AxelH - 呃......我明白了......英语显然不是你的母语。 – DevilsHnd

回答

0

下面应该工作:

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

2

使用Arrays.toString将建立一个String[ <cell0>, <cell1>, <cell2>, ..., <celln>]如DOC解释:

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

这就解释了为什么你"[., -]"但是你可以纠正char[]String表示与constructor

public String(char[] value)

,它表示当前包含的字符序列分配一个新的String字符数组参数[...]

或者静态方法valueOf

public static String valueOf(char[] data)

返回char数组参数的字符串表示[...]

String s1 = new String(Arrays.copyOfRange(s,0,2)); 
String s2 = String.valueOf(Arrays.copyOfRange(s,0,2)); 
-1

使用这部分代码:

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