有没有办法将子序列记忆到变量中?
Is there a way to memorize a subSequence into a variable?
我正在编写一个程序,该程序应该忽略文字中的 (
和 )
(不使用 RegExp),并且通过我创建的方法,我想要我的变量 x
来记住新的字符串。如何以这种方式访问子序列或通过不包括使用 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)
的输出在我的 x
变量中是 boo
,而不仅仅是通过 System.out.println
方法在屏幕上显示。
你说这是"what i want to do. it doesn't work.":
String x = String.valueOf(charArray).subSequence(0, k);
subSequence()
is a CharSequence
的 return 值不是字符串。这是有道理的,它不会起作用。
由于您是从一个字符数组开始的 – char []
– 您可以使用 Arrays.copyOfRange()
创建一个包含 charArray
的一些较小子集的新数组,如下所示:
char[] copy = Arrays.copyOfRange(charArray, 0, k);
从那里,您可以构建一个新的 String
– new String(copy)
– 或者直接使用新的字符数组。
我正在编写一个程序,该程序应该忽略文字中的 (
和 )
(不使用 RegExp),并且通过我创建的方法,我想要我的变量 x
来记住新的字符串。如何以这种方式访问子序列或通过不包括使用 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)
的输出在我的 x
变量中是 boo
,而不仅仅是通过 System.out.println
方法在屏幕上显示。
你说这是"what i want to do. it doesn't work.":
String x = String.valueOf(charArray).subSequence(0, k);
subSequence()
is a CharSequence
的 return 值不是字符串。这是有道理的,它不会起作用。
由于您是从一个字符数组开始的 – char []
– 您可以使用 Arrays.copyOfRange()
创建一个包含 charArray
的一些较小子集的新数组,如下所示:
char[] copy = Arrays.copyOfRange(charArray, 0, k);
从那里,您可以构建一个新的 String
– new String(copy)
– 或者直接使用新的字符数组。