有没有办法将subSequence记住为变量?

时间:2019-10-21 03:03:02

标签: java subsequence

我正在编写一个程序,该程序应该用语言忽略()(不使用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变量中的x,而不仅仅是通过System.out.println方法在屏幕上显示。

1 个答案:

答案 0 :(得分:0)

您说这是“我想做的事。它不起作用。”

String x = String.valueOf(charArray).subSequence(0, k);

subSequence()的返回值是一个CharSequence,它不是字符串。这是行不通的。

由于您是从字符数组– char []开始的,因此可以使用Arrays.copyOfRange()创建一个由charArray的较小子集组成的新数组,如下所示:

char[] copy = Arrays.copyOfRange(charArray, 0, k);

从那里,您可以构造一个新的Stringnew String(copy) –或直接使用该新字符数组。