
正文
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));
}
}
}






