我正在编写一个程序,它应该忽略(和) (不用RegExp),通过我创建的方法,我希望变量x记住新的字符串。我如何以这种方式访问subSequence,或者通过另一种不包括使用RegExp的方法来规避问题?
public int removeParentheses(char[] str) {
// To keep track of '(' and ')' characters count
int count = 0;
for (int i = 0; i < str.length; i++)
if (str[i] != '(' && str[i] != ')')
str[count++] = str[i];
return count;
}
public String foo(String input) {
for (String index : input.split(" ")) {
char[] charArray = index.toCharArray();
int k = removeParentheses(charArray);
String x = String.valueOf(charArray).subSequence(0, k); // that's what i want to do. it doesn't work.
System.out.println(String.valueOf(charArray).subSequence(0, k)); // this is the only way i can make it work, but it doesn't suffice my needs
}
}当前输出是
error: incompatible types: CharSequence cannot be converted to String
String x = String.valueOf(charArray).subSequence(0, k);
^
1 error我希望boo)的输出在boo变量中是boo,而不仅仅是在屏幕上通过System.out.println方法。
发布于 2019-10-21 03:17:58
你说这是“我想做的事,不管用。”
String x = String.valueOf(charArray).subSequence(0, k);subSequence()的返回值是一个CharSequence,它不是字符串。这是有道理的,它是行不通的。
由于您是从一个字符数组( char [] )开始的,所以您可以使用Arrays.copyOfRange()来创建一个新的charArray子集数组,如下所示:
char[] copy = Arrays.copyOfRange(charArray, 0, k);在那里,您可以构造一个新的String -- new String(copy) --或者直接使用这个新的字符数组。
https://stackoverflow.com/questions/58479275
复制相似问题