去腾讯时遇到的一个面试题
简单
==========
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
/**
?* 分离字符串
?* 这个类的功能,是把指定的字符串,以‘|’为界,把字符串分离
?* 去腾讯面试手机开发的时候遇到的面试题,当时由于对java语言细节不熟悉,
?* 没做出来,所以一直耿耿于怀
?* 由于使用了String和List,使得用java实现变得很简单
?* 用c实现才是王道
?*/
class cutstr
{
?? ?private final static String firststr = "hello|haha|byebye|go|run|happy|love|";
?
??? public static void main(String[] args)
??? {
?????? ?List<String> Res = new ArrayList<String>(); //the Result
??????? String tmpStr = new String();
??
?????? ?for(int k = 0; k < firststr.length(); k++)
??????? {
?????????? ?char c = firststr.charAt(k);
?????????? ?tmpStr += c;
???
??????????? if(c == '|')
??????????? {
?????????????? ?Res.add(tmpStr);
?????????????? ?tmpStr = new String();
??????????? }
??????? }
??
?????? ?//在控制台输出分离后的字串
??????? /* 第一种方法:传统数组方式 */
??????? System.out.println("The First:");
?????? ?for(int i = 0; i < Res.size(); i++)
????? ??{
?????????? ?System.out.println(Res.get(i));
??????? }
??
????? ??/* 第二种方法:泛型方式 */
????? ??System.out.println("The Second:");
????? ??for(Iterator<String> it = Res.iterator(); it.hasNext(); )
????? ??{
???????? ???String s = it.next();
???????? ???System.out.println(s);
????? ??}
??
????? ??/* 第三种方法:泛型中的改进式 */
????? ??System.out.println("The Third:");
????? ??for(String str : Res)
????? ??{
???????? ???System.out.println(str);
????? ??}
?? ?}
}