要求:
已知一个有足够剩余空间的字符串数组。请将数组中出现的空格替换成“%20”
额外说明:
innitialArray : 用于从键盘读入的字符串初始该数组
import java.util.Scanner;
public class ReplaceBlack {
public static void main(String[] args){
char[] array=new char[1000];
Scanner input=new Scanner(System.in);
String str=input.nextLine();
//System.out.println(str);
innitialArray(array,str);
int length=str.length();
int blackNum=blackNum(array,length);
// System.out.println(blackNum);
replaceBlack(array,length,blackNum);
// replaceBlack(array);
System.out.println(array);
}
private static int blackNum(char[] array, int length) {
// TODO Auto-generated method stub
int count=0;
for(int i=0;i<length;i++)
{
if(array[i]==' ')
count++;
}
return count;
}
private static void innitialArray(char[] array, String str) {
// TODO Auto-generated method stub
for(int i=0;i<str.length();i++)
array[i]=str.charAt(i);
}
private static void replaceBlack(char[] array, int length, int blackNum) {
// TODO Auto-generated method stub
if(array==null||length==0)
{
System.out.println("invalid array");
return;
}
int newLength=length+2*blackNum;
int pos1=length-1;
int pos2=newLength-1;
while(pos1>=0){
if(array[pos1]!=' ')
{
array[pos2]=array[pos1];
pos1--;
pos2--;
}
else
{
array[pos2--]='0';
array[pos2--]='2';
array[pos2--]='%';
pos1--;
//pos2=pos2-3;
}
}
}
}