把用某符号分隔的字符串转换成数组
常见的一道面试题:把某某符号(“,”或 “#”)分隔的字符串转换成一个数组。
思路有两个:
(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(" "); }else{ System.out.print(","); } } } }
面试中一般会提问用“,”逗号分隔的简单情况,但是也要想到,如果有两种符号分隔,那么在使用split()函数时,就需要用一个for循环,而StringTokenizer则不需要。
另外要注意:StringTokenizer这个类是出于兼容性原因而被保留的遗留类,新代码中并不鼓励使用它。
实际中的情境举例:如初期的高校云平台中评教部分,学生评教时会记录每个评分项的id和该项学生评的分数,实现时使用JavaScript将参数加到url中继续传递。
字符串的样式为:项目a的ID,a的分数#项目b的ID,b的分数#项目c的ID,c的分数
在后面写具体代码的时候,也会选择将参数转化为数组。在初期评教中,使用了split()函数进行了转换。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。