爱吃柚子
用的java
public class Solution {
public String replaceSpace(StringBuffer str) {
StringBuffer out=new StringBuffer();
for (int i = 0; i < str.toString().length(); i++) {
char b=str.charAt(i);
if(String.valueOf(b).equals(" ")){
out.append("%20");
}else{
out.append(b);
}
}
return out.toString();
}
}
public class Solution {
public String replaceSpace(StringBuffer str) {
String sti = str.toString();
char[] strChar = sti.toCharArray();
StringBuffer stb = new StringBuffer();
for(int i=0;i<strChar.length;i++){
if(strChar[i]==' '){
stb.append("%20");
}else{
stb.append(strChar[i]);
}
}
return stb.toString();
}
}
class Solution {
public:
void replaceSpace(char *str,int length) {
string s(str);
int i=0;
while((i=s.find(' ',i))>-1){
s.erase(i,1);
s.insert(i,"%20");
}
auto ret=s.c_str();
strcpy(str,ret);
}
}; };
第二遍自己做发现了更简单的办法哟~
public class Solution {
public String replaceSpace(StringBuffer str) {
String s = str.toString();
if(str==null)
return s;
char []ss=s.toCharArray();
StringBuffer sb = new StringBuffer();
for(int i=0;i<ss.length;i++)
{
if(ss[i]==' ')
{
sb.append("%20");
}
else
sb.append(ss[i]);
}
return sb.toString();
}
}
class Solution {
public:
void replaceSpace(char *str,int length) {
int spaceNum=0;
for(int i=0;i<length;i++)
{
if(str[i]==' ')
spaceNum++;
}
int newIndex=length+2*spaceNum;
char *index=str+length;
while(index>=str)
{
if(*index==' ')
{
str[newIndex--]='0';
str[newIndex--]='2';
str[newIndex--]='%';
}
else{
str[newIndex--]=*index;
}
index--;
}
}
};
//JAVA的同学看这里。我用JAVA按照C++的思路写了一份,原理和思路,我这里用了输出语句展示替换过程。其他老哥已经讲得很清楚了
class Solution {
public:
void replaceSpace(char *str,int length)
{
int count=0;
for(int i=0;i<length;i++)
{
if(str[i]==' ')
count++;
}
int newLength=length+2*count;
for(int i=length-1;i>=0;i--)
{
if(str[i]!=' ')
{
str[i+2*count]=str[i];
}
else
{
str[i+2*count]='0';
str[i+2*count-1]='2';
str[i+2*count-2]='%';
count--;
}
}
}
};
public class Solution {
public String replaceSpace(StringBuffer str) {
StringBuffer st = new StringBuffer();
for(int i = 0; i < str.length() ; i++){
char s = str.charAt(i);
if(String.valueOf(s).equals(" ")){
st.append("%20");
}
else{
st.append(s);
}
}
return st.toString();
}
}
package alex.suda.jzOffer;
import java.util.Scanner;
public class ReplaceSpace {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String s = scanner.nextLine();
StringBuffer str = new StringBuffer(s);
System.out.println(replaceSpace(str));
}
}
public static String replaceSpace(StringBuffer str) {
if (str == null) {
return null;
}
int blankNum = 0;
int length = str.length();
int newLength = 0;
for (int i = 0; i < length; i++) {
if (str.charAt(i) == ' ') {
blankNum++;
}
}
newLength = length + 2 * blankNum;//替换后的字符串长度
char[] newChars = new char[newLength];//新的字符数组
int index = newLength - 1;
for(int i=length-1;i>=0;i--) {
if (str.charAt(i) == ' ') {
newChars[index--] = '0';
newChars[index--] = '2';
newChars[index--] = '%';
} else {
newChars[index--] = str.charAt(i);
}
}
return new String(newChars);
}
}
package HuaWei;
public class Replace {
/**
* 请实现一个函数,将一个字符串中的空格替换成“%20”。
* 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
*/
public static void main(String[] args) {
String s = "We Are Happy";
re(s);
}
public static void re(String s ){
String[] all = s.split(" ");
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = new StringBuffer();
for(int i = 0;i<all.length;i++){
if(i!=all.length-1){
sb1.append(all[i]+"%20");
}
else
sb1.append(all[i]);
}
System.out.println(sb.append(sb1));
}
}