在 Java 中用 %20 替换空格
在本文中,我们将学习两种用 %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()
方法,因为它易于使用且只需一行代码。
相关文章
如何在 Java 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,