面试题4
2015-08-10 21:29
483 查看
用 %20 替换字符串中的空格
按照书中的算法,首先找到字符串中空格的数量,扩展字符串空间,然后在源字符串尾部设置一个标识head,在扩展后的字符床尾部设置一个标识last。若head处字符不等于空格,那么直接把该字符赋值给last,head、last同时向前移动一个位置;若head处字符等于空格,那么last处赋值为‘0’,last-1处赋值为‘2’,last-2处赋值为‘%’,head向前移动一个位置,last向前移动三个位置。直到head和last标示(指向)同一个位置为止。public String replaceSpace(StringBuffer str) { int spaceNumber = 0; int head = str.length() - 1; int last = 0; if (str != null) { for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == ' ') { spaceNumber++; str.append(new char[2]); } } last = head + (2 * spaceNumber); } while (head < last) { char temp = str.charAt(head); if (temp != ' ') { str.setCharAt(last, temp); head--; last--; } else { str.setCharAt(last, '0'); str.setCharAt(last - 1, '2'); str.setCharAt(last - 2, '%'); head--; last -= 3; } } return str.toString(); }
相关文章推荐
- 四道面试题
- 黑马程序员——类与对象
- 面试官的技术面试技巧与步骤
- 115个Java面试题和答案——终极列表(上)
- (剑指Offer)面试题60:把二叉树打印成多行
- (剑指Offer)面试题59:对称的二叉树
- 剑指Offer面试题42(Java版):反转单词顺序VS左旋转字符串
- 初入java路,面试屡碰壁。
- 黑马程序员-----Java基础-----构造函数
- 程序员保值的4个秘密
- 剑指Offer面试题41(Java版):和为s的两个数字VS和为s的连续正数序列
- 黑马程序员——Java中多线程技术
- 阿里巴巴、腾讯、百度的面试问题笔知识汇总(两)
- 剑指Offer面试题40(Java版):数组出现一次的数字
- PHP笔试题和面试题
- 【黑马程序员】@property的参数
- 黑马程序员--Java常见对象
- 黑马程序员——C语言之 指针
- android面试
- 年度催泪之作:2015中国程序员生存报告