indexOf()能用吗?
f(char str,char del){
for(int i=str.length();i>0;i--){
int index = str.indexOf(del); //得到del在str中的位置
if(index!=-1){ //此位置存在
if(!"".equals(substring(0,index))){//若str串中此位置前的子串不空
System.out.print(substring(0,index));//打印此子串
}
}else{//若此位置不存在
if(!"".equals(str)){此时str串不为空
System.out.println(str);打印串
}
break;否则认为str已经处理完毕,跳出for
}
str = substring(index+1,str.length());//将已经被打印的串+本次循环中index标记的del剪去,得到新的str串
}
}
来网吧上的网,没环境,应该能实现,但是觉得这样没什么意义,已经有简单的,为什么还要弄这复杂的呢
import java.util.StringTokenizer;
public class CStringTokenizer {
static String str = "33a123333435"; //初始化字符串
static String s = "3"; //分割符
public static void main(String[] args) {
CStringTokenizer string = new CStringTokenizer();
string.f(str,s);
}
public void f(String str1,String del)
{
StringTokenizer strln = new StringTokenizer(str1,del);
while(strln.hasMoreTokens())
{
String s = strln.nextToken();
System.out.println(s);
}
}
}
朋友,你的f函数我稍改了一下,因为我用到了StringTokenizer类中的方法。
public void f(String str1,String del),你给出的f(char *str,char del)中*Str对于Java中不适用,而且在传递参数时类型也在匹配。
StringTokenizer strln = new StringTokenizer(str1,del)这一句是StringTokenizer类中的一个对字符串进行分析处理的分析器,你可以按这种写法用理解。
strln.hasMoreTokens()这个方法是判断是否用所定义的字符串进行分割完毕,返回值为Boolean型。
strln.nextToken()这一个方法是分析字符串中是否还有 “3”这样的分割符,如果有的继续,直到字符串中没有这样的分割为止。
还有就是分割符应为String型,对于本类中来说。
所给你提供的代码我已在Eclipse中运行通过。有不懂的地方你可以查找API文档。
public String f(String str,char del){
String tem;
ArrayList
for(int i=0;i
tem=str.substring(0,index);
if(!tem.equals(""))
list.add(tem);
str=str.substring(index+1,str.length-(index+1));
}
for(String s :list)
System.out.print(s);
}