迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中用 %20 替换空格

作者:迹忆客 最近更新:2023/07/16 浏览次数:

在本文中,我们将学习两种用 %20 替换给定字符串的所有空格的方法。


Java中使用replaceAll()方法将空格替换为%20

在这里,我们使用Java内置方法 replaceAll() 将所有空格替换为%20字符串。

在示例中,我们创建了字符串并以该字符串作为引用执行了 ReplaceAll() 方法。

ReplaceAll() 方法的语法:

string.replaceAll(oldString,newString);

正如用户在 replaceAll() 方法的语法中看到的,它将字符串作为需要替换的第一个参数,将新字符串作为将替换第一个参数的第二个参数。

示例代码:

class Test {
    public static void main(String[] args) {
         // given string
        String str = "Hello user!, Welcome to the Jiyik.   ";
        // replace spaces with %20
        str = str.replaceAll(" ", "%20");
        System.out.println(str);
    }
}

输出:

Hello%20user!,%20Welcome%20to%20the%20Jiyik.%20%20%20

在上面的输出中,用户可以看到 replaceAll() 已经用 %20 替换了所有空格,甚至是字符串末尾的所有空格。 如果用户想要删除末尾的空格,应该使用 String 库的 trim() 方法。

str = str.trim().replaceAll(" ", "%20");

输出:

Hello%20user!,%20Welcome%20to%20the%20Jiyik.

现在,用户可以在上面的输出中观察到trim()方法已经删除了末尾的空格,这就是replaceAll()方法没有在末尾添加%20字符串的原因。

时间复杂度

上面例子的时间复杂度是O(n),其中n代表字符串长度。 ReplaceAll()方法的时间复杂度为O(n)。

空间复杂度

上面显示的代码的空间复杂度是 O(1),因为我们没有使用任何额外的空格。


在 Java 中使用 StringBuilder 类并创建一个新字符串以将空格替换为 %20

在此方法中,我们将使用 StringBuilder() 类创建自定义长度的字符串。 用户应按照以下步骤使用多余的空格将所有空格替换为 %20 字符串。

  • 创建 StringBuilder 类的对象并使用空字符串对其进行初始化。 在这里,我们创建了 resultString。
  • 使用 for 循环或 while 循环遍历给定的字符串。
  • 如果给定字符串中位置 i 处的字符是空格,则将 %20 附加到 resultString。 否则,将相同的字符附加到 resultString。
  • 迭代完成后返回或打印 resultString。

示例代码:

class Test {
    public static void main(String[] args) {
        StringBuilder resultString = new StringBuilder("");
        // given string
        String str = "Java is One of the best Programming Language.";
        // Remove spaces from the end of the string.
        str = str.trim();
        // iterate through string
        for(int i=0;i<str.length();i++){
        // if the character at position i is a string, append %20 to string builder. Otherwise, append same character,
            if(str.charAt(i)==' '){
                resultString.append("%20");
            }else{
                resultString.append(str.charAt(i));
            }
        }
        // print the StringBuilder after appending
        System.out.println(resultString);
    }
}

输出:

Java%20is%20One%20of%20the%20best%20Programming%20Language.

时间复杂度

上述算法的时间复杂度为 O(n),其中 n 指的是迭代字符串时给定字符串的长度。

空间复杂度

上述算法的空间复杂度为 O(n),因为我们使用 StringBuilder() 类来创建和存储新字符串。

我们学习了两种用新子字符串替换给定字符串中的子字符串或字符的方法。 在第一部分中,我们使用了Java内置的 replaceAll() 方法,并在第二部分中创建了自定义算法。

建议使用replaceAll()方法,因为它易于使用且只需一行代码。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中对一个 Switch Case 语句使用多个值

发布时间:2023/07/16 浏览次数:172 分类:Java

在本文中,我们将学习如何在一个 switch-case 语句中使用多个值。使用 switch-case 语句 Java 允许程序员通过使用 switch case 语句来像其他编程语言一样克服太多的 if-else 条件语句。

Java 中的线程安全延迟初始化

发布时间:2023/07/16 浏览次数:59 分类:Java

本文将讨论在 Java 中实现线程安全的延迟初始化。Java 中的对象初始化 延迟初始化是延迟对象创建的行为。 它还可能导致某些计算任务或首次昂贵流程的延迟。

在 Java 中显示动画 GIF

发布时间:2023/07/16 浏览次数:112 分类:Java

我们可以使用javax包的Swing库方法来在Java中显示动画GIF。 本文介绍用户如何在 Java 应用程序或单独的窗口中显示动画 GIF。使用 Javax.swing 库在 Java 中显示动画 GIF

Java 聚合与组合

发布时间:2023/07/16 浏览次数:67 分类:Java

在Java中,聚合和组合是紧密相连的两个概念。 组合是类之间的紧密关联,而聚合是弱关联。Java 中的组合 Java 中的聚合

Java 错误 Java.Security.InvalidKeyException: Illegal Key Size

发布时间:2023/07/15 浏览次数:98 分类:Java

本篇文章介绍包含 java.security.InvalidKeyException: Illegal key size 的 Java 代码。 然后,我们将了解其可能的原因。最后,它通过消除指定的错误来引导我们找到解决方案。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便