Java 替换字符数组中的字符
我有以下程序,我正在尝试用“%20”替换字符数组中的空格。 例如,如果我有这个['a','b','',输出将是这个['a','b','%20'] 以下是节目:Java 替换字符数组中的字符,java,arrays,Java,Arrays,我有以下程序,我正在尝试用“%20”替换字符数组中的空格。 例如,如果我有这个['a','b','',输出将是这个['a','b','%20'] 以下是节目: import java.util.*; import java.util.Scanner; class some_str { String str1; String space_method(String str) { char[] chars = str.toCharArray(); //char[] s3=new
import java.util.*;
import java.util.Scanner;
class some_str
{ String str1;
String space_method(String str)
{
char[] chars = str.toCharArray();
//char[] s3=new char[chars.length];
for(char c:chars)
//for (int i=0;i<chars.length;i++)
if(Character.isWhitespace(c))
{
//over here I need to replace the space with '%20'
}
return "\n"+str;
}
}
public class space_str
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter string");
String str= sc.nextLine();
some_str st=new some_str();
System.out.println(st.space_method(str));
}
}
import java.util.*;
导入java.util.Scanner;
给一些学生上课
{字符串str1;
字符串空间\方法(字符串str)
{
char[]chars=str.toCharArray();
//char[]s3=新字符[chars.length];
for(char c:chars)
//对于(int i=0;i这是您想要的:
String replaceSpace(String string) {
StringBuilder sb = new StringBuilder();
for(char c : string.toCharArray()) {
if (c == ' ') {
sb.append("%20");
} else {
sb.append(c);
}
}
return sb.toString();
}
请注意,不能将“%20”
放入字符中,因为它是3个符号,而不是1个。这就是为什么不应为此使用数组的原因
对于库函数,您可以使用string.replace(“,“%20”)
或string.replaceAll(“,“%20”)
尝试以下操作:-
str.replace(" ", "%20");
此方法将所有空格替换为%20
子字符串,而不是字符,因为%20
不是字符。我们知道字符串是不可变的,所以要用字符串中的%20替换所有空格字符,我们可以先将字符串转换为您所做的字符数组,然后再进行操作或我们可以使用StringBuilder类,您可以将其视为可变字符串,但它在内部基本上是一个字符数组(还有StringBuffer,它与StringBuilder基本相同,只是它是线程安全的)
不管怎样,下面的程序做了您需要做的事情
public String spaceMethod(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if (Character.isWhitespace(str.charAt(i))) {
sb.append("%20");
}
else
{
sb.append(str.charAt(i));
}
}
return sb.toString();
}
publicstringspacemethod(stringstr){
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
关于代码中的错误,魔兽世界的答案已经解释了。祝你好运!你的问题是什么?%20是3个符号,而不是1,你不能将其放入字符中。你可能希望StringBuilder
为空以使其正常工作。编辑:我写这篇文章时,你似乎已经修复了它:)@现在不是你。我不小心把字符串放进去了。谢谢@Wow。我是Java新手,一直是python开发人员。@Adrija没问题。你应该使用库函数replace
或replaceAll
,就像其他答案中提到的那样,这样可以节省一些打字和代码大小:)