String Replacement

public class Solution {
    /**
     * @param string: An array of Char
     * @param length: The true length of the string
     * @return: The true length of new string
     */
    public int replaceBlank(char[] string, int length) {
        // Write your code here
        /***
         * The hard part for this one is
         * 1) in space
         * 2) white space is size=1, replace string ‘%20‘ is size=3, so cannot
         * easily replace from begginning.
         ***/
        int spaceCount = 0;
        //First loop move forward, to count how many white space
        for (int i = 0; i < length; i++){
            if (string[i] == ‘ ‘){
                spaceCount++;
            }
        }

        int trueNewLength = length + spaceCount*2;
        //Second loop move backward to copy the char and replace white space
        for (int i = length -1; i >= 0; i--){
            int newIndex = i + spaceCount * 2; //Consider ‘ ‘ is replaced by ‘0‘, 2 extra char needed to be consider
            if (string[i] ==‘ ‘){ //Attension: move backward, so ‘0‘ is put first
                string[newIndex] = ‘0‘;
                string[newIndex-1] = ‘2‘;
                string[newIndex-2] = ‘%‘;
                spaceCount--;
            } else {
                string[newIndex] = string[i];
            }
        }
        return trueNewLength;

    }
}
时间: 2024-12-20 01:20:25

String Replacement的相关文章

java.lang.String.replaceAll(String regex, String replacement)使用注意

java.lang.String.replace()方法的参数可以是char类型或者CharSequence类型(String实现了CharSequence接口) java.lang.String.replaceAll(String regex, String replacement)方法的参数是正则表达式和要替换后的字符串,参数regex如果输入例如"+86"或者其他带有特殊字符的字符串则会报错,需要使用特殊符号的时候需要进行转义.

Matcher.appendReplacement(StringBuffer sb, String replacement)解析

Pattern p = Pattern.compile("cat");Matcher m = p.matcher("one cat two cats in the yard");StringBuffer sb = new StringBuffer();while (m.find()) {      m.appendReplacement(sb, "dog");}m.appendTail(sb);System.out.println(sb.toSt

String类使用方法

1.1.字节与字符串相互转换 |-字节-->String:public String(byte[]  bytes)        |-String-->字节: public byte[] getBytes(String charsetName) 范例:字节-->字符串 public class Demo1 { public static void main(String[] args) { String str="hello world"; byte []b=str.

Java源代码学习 -- java.lang.String

java.lang.String是使用频率非常高的类.要想更好的使用java.lang.String类,了解其源代码实现是非常有必要的.由java.lang.String,自然联想到java.lang.StringBuffer和java.lang.StringBuilder,下篇文章再来研究java.lang.StringBuffer和java.lang.StringBuilder. 重要属性 java.lang.String对象中字符串主要是以字符数组的形式存储.当调用对象方法获取字符串长度时

String方法

构造函数: String() String(char[] chars) String(String strObj) String(byte asciiChars[]) 整型和字符串相互转换: String到int:int i = Integer.parseInt(String s) int i = Integer.valueOf(str).intValue() int到String:String s = String.valueOf(i) String s = Integer.toString(

String类replaceAll方法正则替换深入分析

作者网址: https://my.oschina.net/shipley/blog/98973 背景:      前几天有人发了一个关于下面问题的贴,对这个有点好奇,故花时间做了点研究.        对单个反斜杠字符串替换成双斜杠的Java实现如下:    String s = "\\";    方法一:String sr1 = s.replaceAll("\\\\", "\\\\\\\\");    方法二:String sr1 = s.re

Java学习之String

一.String 关于String类型变量,我们必须知道String并不是基本数据类型,而是一个对象,String对象为不可变对象,一旦在内存中创建,内容不能发生变化,若要对字符串内容改变,那么就会创建新对象. 当创建字符串对象的时候,我们知道在初始化之前,值为null. String s1 = ””; String s2 = null; String s3 = new String(); s2表示的对象是还未创建,因此,它的内存尚未分配 s1,s3则表示有内存空间,只是空间里面没有值 Stri

String中的方法

这里只是总结一些我觉得有用可能会用到的: 详细api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh 1.str.getChars(int strBegin,  int strEnd,  char[] dst,  int  dstBegin):将str的一部分(下标从strBegin到strEnd-1)复制到字符数组dst从dstBegin开始到des[dstBegin+(复制的长度)]将会覆盖原来的字符..注意控制下标.. String s1

字符串String 2

思维导图透视 判断字符串的开始与结尾 String类的startsWith()与endsWith()方法分别用于判断字符串是否以指定的内容开始和结尾,它们的返回值都为boolean类型. (1)startsWith()方法 该方法用于判断当前字符串对象是否以参数指定的字符串开始. str.startsWith(String prefix) prefix:指作为前缀的字符. 返回值:返回boolean类型. //判断字符串开始 System.out.println("是否以“字符串1”字开头=&q