Java implementation as follows:
public class Main {
public static void main(String args[]){
String str1 = "I am is yao liang yong";
String replaceStr1 = replaceSpce1(str1);
System.out.println(replaceStr1);
String str2 = "I am yao liang yong";
String replaceStr2 = replaceSpace2(str2);
System.out.println(replaceStr2);
}
//只是把一个空格替换成一个%20,如果有多个空格那么就要被替换成多个%20
private static String replaceSpce1(String str){
StringBuilder sb = new StringBuilder();
for (int i=0;i<str.length();i++){
if (String.valueOf(str.charAt(i)).equals(" ")){
sb.append("%20");
}else {
sb.append(String.valueOf(str.charAt(i)));
}
}
return sb.toString();
}
//把多个空格替换成一个%20
private static String replaceSpace2(String str){
StringBuilder sb = new StringBuilder();
for (int i=0; i<str.length();i++){
if (String.valueOf(str.charAt(i)).equals(" ")){
if (i+1 <= str.length()-1 && !String.valueOf(str.charAt(i+1)).equals(" ")){
sb.append("%20");
}
}else {
sb.append(String.valueOf(str.charAt(i)));
}
}
return sb.toString();
}
}
Kotlin achieve the following:
import java.lang.StringBuilder
fun main(args: Array<String>) {
var str1 : String = "I am is yao liang yong"
println(replaceSpace1(str1))
var str2 = "I am is yao liang yong"
println(replaceSpace2(str2))
}
fun replaceSpace1(str : String) : String{
var sb : StringBuilder = StringBuilder()
for (i in 0..str.length-1){
if (str[i] == ' '){
sb.append("%20")
}else{
sb.append(str[i].toString())
}
}
return sb.toString()
}
fun replaceSpace2(str : String) : String{
var sb : StringBuilder = StringBuilder()
for (i in 0..str.length-1){
if (str[i] == ' '){
if (i+1 <= str.length-1 && str[i+1] != ' '){
sb.append("%20")
}
}else{
sb.append(str[i].toString())
}
}
return sb.toString()
}