Rumah > Java > javaTutorial > java实现替换字符串中的空格思路和代码

java实现替换字符串中的空格思路和代码

PHPz
Lepaskan: 2017-04-23 14:53:41
asal
2610 orang telah melayarinya

问题描述:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

java实现替换字符串中的空格基本思路:

逆序替换,降低时间复杂度

实现方案:

  • String一旦初始化,无法改变。

  • 使用StringBuffer,是因为牛客网的模板。

  • 实际使用中,单线程建议是用StringBuilder,因其无锁,效率高。

  • 多线程中,使用StringBuffer。

  • 两者的内置函数是相同的

思考:

  • 在原有字符串上更改,还是新建字符串(原有的话,需要重新设置长度setLength())

  • 不考虑使用现有replace()

java实现替换字符串中的空格代码:

public static String replaceSpace(StringBuffer str){        
        int length = str.length();        int spacenum = 0;        
        //统计空格字符个数
        for(int i=0;i<length;i++){            if(str.charAt(i) == &#39; &#39;)
                spacenum++;
        }        
        int lengthNew = length + spacenum*2;
        str.setLength(lengthNew);        int index = length-1;        int indexNew = lengthNew-1;        for(;index>=0;index--){            
            if(str.charAt(index) == &#39; &#39;){
                str.setCharAt(indexNew--, &#39;0&#39;);
                str.setCharAt(indexNew--, &#39;2&#39;);
                str.setCharAt(indexNew--, &#39;%&#39;);
            }            else{
                str.setCharAt(indexNew--, str.charAt(index));
            }
        }        return str.toString();
    }
Salin selepas log masuk

好了,本文就介绍到这里,欢迎大家多多指教。感兴趣的请学习php中文网在线java视频教程

Atas ialah kandungan terperinci java实现替换字符串中的空格思路和代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan