java字符串分割的小练习
最近看到一个网友的一个小问题,有关字符串分割的,思考了一下,后面给出代码;碰到一个java字符串判断结尾的问题,发现与c\c++以"\0"判断字符串结尾不同的是,java中字符串是一个类对象,即String类对象,不存在这个问题, 给多少就是多少。只是要用双引号引起来。
比如:String str = "abc";
String str2 = "ddd";
那么str+str2 就是"abcddd"
/*
* 字符串分割的一个小练习
* 如str = "11223444";分为11,22,3,444输出
*/
String str = "11222333334456666" ;
for( int i=0; i<str.length();)
{
int j=i;
int num=0;
while(str.charAt(j)==str.charAt(j+1))
{
num++;
j++;
if((j+1)==str.length()) //如果j+1越界的话,在执行while循环判断条件时会抛出异常
break;
}
num++;
String strOut = str.substring(i, i+num);
System. out.println(strOut);
i = i+num;
}
后来想想,应该用把要输出的变量存储起来好些,重新整理了一下代码:
-------------------------------2014.11.3--------------------------
import java.util.Vector; public class smalltest{ public static void main(String[] args){ Vector<Object> vTemp= new Vector<Object>(); String str = "11222333334456666"; for(int i=0; i<str.length();) { int j=i; int num=0; while(str.charAt(j)==str.charAt(j+1)) { num++; j++; if((j+1)==str.length()) //如果j+1越界的话,在执行while循环判断条件时会抛出异常 break; } num++; String strOut = str.substring(i, i+num); //System.out.println(strOut); vTemp.addElement(strOut); i = i+num; } for(int vTempNum=0; vTempNum<vTemp.size(); vTempNum++) { System.out.println(vTemp.elementAt(vTempNum)); } } }