把用某符号分隔的字符串转换成数组

来源:互联网 发布:双系统mac 怎么切换 编辑:程序博客网 时间:2024/05/16 15:45

常见的一道面试题:把某某符号(“,”或 “#”)分隔的字符串转换成一个数组。

思路有两个:

(1)使用split()函数

(2)StringTokenizer


举例:一个字符串str用逗号分隔为:“aa,bb,cc,dd,ee,ff,gg” 要求将其转换成数组


代码:

import java.util.StringTokenizer;public class Test3{public static void main(String[] args){String str="aa,bb,cc,dd,ee,ff,gg";String[] strArray1=null;System.out.println("----Method1: use split----"); //使用split()函数strArray1= str.split(",");// System.out.println("----Method2: use StringTokenizer----"); //使用StringTokenizer// StringTokenizer st = new StringTokenizer(str,",");// String[] strArray1 = new String[st.countTokens()];// int a =0;// while(st.hasMoreTokens()){// strArray1[a++]=st.nextToken();// }//将结果打印出来for(int i=0;i<strArray1.length;i++){System.out.print(strArray1[i]);if(i==strArray1.length-1){System.out.print("\n");}else{System.out.print(",");}}}}


面试中一般会提问用“,”逗号分隔的简单情况,但是也要想到,如果有两种符号分隔,那么在使用split()函数时,就需要用一个for循环,而StringTokenizer则不需要。

另外要注意:StringTokenizer这个类是出于兼容性原因而被保留的遗留类,新代码中并不鼓励使用它。


实际中的情境举例:如初期的高校云平台中评教部分,学生评教时会记录每个评分项的id和该项学生评的分数,实现时使用JavaScript将参数加到url中继续传递。

字符串的样式为:项目a的ID,a的分数#项目b的ID,b的分数#项目c的ID,c的分数

在后面写具体代码的时候,也会选择将参数转化为数组。在初期评教中,使用了split()函数进行了转换。


0 0
原创粉丝点击