java - 从 String java 中删除未知数量的字符

标签 java string char trim

我有以下任务: 从给定字符串的开头和结尾修剪给定字符。 例如,如果给定字符串是“aaahappybirthdayaaaaaaa”,并且给定字符是“a”,则返回字符串“happybirthday”。 我设法删除了开头,但我找不到删除结尾的方法。 我的代码:

public static String trim(String str, char c) {
    String newStr = "";
    for (int i = 0; i < str.length () && str.charAt (i) == c; i++) {
            newStr = str.substring (i+1);

    }
    String ans = "";
    for (int j = 0; j<newStr.length () && newStr.charAt (j) == c; j++) {
        ans = newStr.substring (0,j);
    }
    return ans;
}

我不能使用修剪或replaceAll,只能使用子字符串。 请给我一些想法,如何删除结尾而不在中间剪切相同的字符

最佳答案

应该使用前向和后向迭代来找出最终字符串的开始和结束索引,然后单个“subString”调用应该返回最终字符串。

public static String trim(String str, char c) {
    int begIndex = 0;
    while (begIndex<str.length() && str.charAt(begIndex) == c) {
        begIndex++;
    }

    int endIndex = str.length()-1;
    while (endIndex>= 0 && str.charAt(endIndex) == c) {
        endIndex--;
    }
    return str.substring(begIndex, endIndex+1);
}

关于java - 从 String java 中删除未知数量的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53114033/

相关文章:

string - 在线托管可编辑的单个文本字符串?

C 从文本文件中查找频繁出现的字符

c++ - 构建一个长字符串作为参数传递给函数

java - 异步调度程序错误

java - 通用接口(interface)或通用子类

java - 简单的套接字 I/O 问题……是吗?

c++ - C++ 字符串上的 bitxor

javascript - 这是在 JavaScript 中生成安全随机字符串的好方法吗?

java - 有时在 c3p0 中连接不可用

ios - Swift 字符串到遗留 C 字符数组