前言(为了找到一首诗,表达我从零开始,我绞尽脑汁寻找,怎么也找不到适合我心情的东西,做了第二个女儿也找不到。 我想拿出小学一年级的语文教科书仔细读一下。 一定会找到答案的。
是的,既然找不到,就不必在意。 今天读了《高效能程序员的修炼》第四章,发现自己烂了。 根据作者的看法,我怎么也进不了他的法眼。 所以,我从零开始,把作者提出的问题按照Java写一遍,不管是借鉴别人,还是借鉴自己能想到的一点方法,自己把它们轰出来,记录下来吧。
写反转字符串的函数,在本系列的开头,我想Java当然也有很多实现方法,很多人都做过这样的博客,但是我必须把它们记录在自己的博客里,尽可能地掌握它们。
package com.honzh.mwq.reverse;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Stack;
公共类测试{
publicstaticvoidmain (字符串[ ] args ) {
//第一个,我最先想到的是,用下标按反序取出文字进行重组
系统. out.println (reverse1(di Yizhong );
//第二,我想了很久才接受,但发现它不适合编程
//循环仍然从0到length-1,只是把先取出的放在后取出的后面
system.out.println (reverse2(' di erzhong ' );
//第三个是利用Collections系统的反转列表的方式,变得麻烦了
系统. out.println (reverse3(' disan zhong ' ) );
//第四个,这比第三个更简单,但我自己还记得如何反转Collections
StringBuilder和StringBuffer的记忆不太深,所以现在还记得
system.out.println (reverse4(' di sizhong ' );
//第五,利用堆栈,所谓先进的落后
//当然,先从API中了解堆栈吧。 在vector扩展中,在推送中执行拖放操作,然后在pop方法中弹出
我认为stack还是有必要深入研究。 看看源代码是怎么扩展的,一定要掌握
系统. out.println (reverse5(di Wuzhong );
//第六个是完全复制别人的,我连理由都不知道? 我一直觉得自己是逻辑痴呆者
//我不知道我是怎么经历漫长编程生涯的7年的。 包括大学在内,我一直怀疑自己能走多远。
//对于第六种方式,一会儿就好像忘记了一样,所以很奇怪自己是怎么活下来的
//这一直是我的痛点,我对各种排序算法有点过敏,我内心讨厌这些排序算法,但好像在学习
//编程的人必须理解。 否则我不会成为程序员,但我不会。
//这种做法,只能是将最初位置的文字置换为位置上对立的文字
//其密钥是否仍然可以对称处理字符串长度为奇数或偶数,显然在处理1234时循环两次
在处理//123时也将2次处理,在123时将2作为对称位置处理
//但最重要的是,其处理次数显然是最有效率的
//我记得面试的申请者是这样回答问题的。 我很害羞,觉得不能面对自己的上司。 因为我没想到会有这样的应对方法
//这种方式还是值得仔细记住的
system.out.println (reverse6(' di liuzhong ' );
system.out.println (reverse6(' 1234 ' );
system.out.println (reverse6(' 123 ' );
}
publicstaticstringreverse1(stringold ) {
字符串结果=' ';
for(intI=old.Length ) )- 1; i=0; I---- ) {
result=string.value of (old.charat (I ) );
}
返回结果;
}
publicstaticstringreverse2(stringold ) {
字符串结果=' ';
for(intI=0; i old.length (; I ) {
result=old.Charat(I ) result;
}
返回结果;
}
publicstaticstringreverse3(stringold ) {
字符串结果=' ';
list olds=arrays.as list (old.split (' ' );
collections.reverse(OLDS;
for(strings:olds ) {
结果=s;
}
返回结果;
}
publicstaticstringreverse4(stringold ) {
返回新字符串缓冲器(old ).reverse ).toString );
//returnnewstringbuilder(old ).reverse ) ).toString );
}
publicstaticstringreverse5(stringold ) {
char[] chars=old.toCharArray (;
堆叠old堆叠=new堆叠(;
for(characterc:chars ) {
Oldstack.push(c;
}
字符串结果=' ';
while (! oldStack.empty (
result =oldStack.pop (;
}
返回结果;
}
publicstaticstringreverse6(stringold ) {
char[] chars=old.toCharArray (;
int n=chars.length - 1;
for(intI=0; i=n/2; I ) {
char temp=chars[i];
chars[i]=chars[n - i];
chars[n - i]=temp;
}
返回新字符串(chars );
}
}
译文: http://blog.csdn.net/智力导师_gee/article/details/44928377