分割字符串的问题 今天笔试的时候遇到个问题:写个通用的方法用来分割字符串方法原型为: public String[] split(String str,char ch){} 不能用String类的split方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 答:能不能用indexOf(...)方法呢?若能用,则用:indexOf(ch)循环一分割不就行了。 代码参考如下:(使用了indexOf(..))import java.util.*;public class TestSplitString { public String[] split(String str,char ch){ ArrayList<String> al=new ArrayList<String>(); int start=0,pos=-1; while( (pos=str.indexOf(ch,start))!=-1 ) { al.add(str.substring(start,pos));//将start到pos之间子串取出 start=pos+1; } if(start<str.length())//最后一个子串 { al.add(str.substring(start)); } return al.toArray(new String[0]); } public static void main(String[] args) { TestSplitString tsp=new TestSplitString(); String[] ss=tsp.split("aaabbcccbddd", 'b'); for(String e:ss) { System.out.println(e); } System.out.println(ss.length); }}运行结果:aaacccddd4 //做了个可以用字符串替换的~可以扩展一下package org;import java.util.ArrayList;public class Csdn { public String[] split(String str,String s){ ArrayList<String> list=new ArrayList<String>(); StringBuilder sb = new StringBuilder(str); int length = s.length(); int start = 0; int end = 0; while((end=sb.indexOf(s, start))!=-1){ list.add(sb.substring(start, end)); start=end+length; } list.add(sb.substring(start)); return list.toArray(new String[list.size()]); } public static void main(String[] args) { Csdn tsp=new Csdn(); String[] ss=tsp.split("zhaolrrzhaolrrzhao", "lrr"); for(String e:ss) { System.out.println(e); } System.out.println(ss.length); }} 新手 大家帮忙看看为什么没结果啊! 如何让JTree和JComboBox透明 前辈们给点意见把 抛出异常处理,该怎么修改??? 关于java执行本地程序的问题 JTable 怎么一次性清空数据? 跪求jsp金额大小写转换代码!谢谢 菜鸟问:从命令行读取的命令是什么 请问怎样才能将论坛里的贴子寸到机器中? 菜鸟求助:jbuilder5安装问题!!! Jspinner 问题 但求一解,一个很弱但很高分的问题
public class TestSplitString { public String[] split(String str,char ch){
ArrayList<String> al=new ArrayList<String>();
int start=0,pos=-1;
while( (pos=str.indexOf(ch,start))!=-1 )
{
al.add(str.substring(start,pos));//将start到pos之间子串取出
start=pos+1;
}
if(start<str.length())//最后一个子串
{
al.add(str.substring(start));
}
return al.toArray(new String[0]);
}
public static void main(String[] args) {
TestSplitString tsp=new TestSplitString();
String[] ss=tsp.split("aaabbcccbddd", 'b');
for(String e:ss)
{
System.out.println(e);
}
System.out.println(ss.length);
}}
运行结果:
aaaccc
ddd
4
//做了个可以用字符串替换的~可以扩展一下
package org;import java.util.ArrayList;
public class Csdn {
public String[] split(String str,String s){
ArrayList<String> list=new ArrayList<String>();
StringBuilder sb = new StringBuilder(str);
int length = s.length();
int start = 0;
int end = 0;
while((end=sb.indexOf(s, start))!=-1){
list.add(sb.substring(start, end));
start=end+length;
}
list.add(sb.substring(start));
return list.toArray(new String[list.size()]);
}
public static void main(String[] args) {
Csdn tsp=new Csdn();
String[] ss=tsp.split("zhaolrrzhaolrrzhao", "lrr");
for(String e:ss)
{
System.out.println(e);
}
System.out.println(ss.length);
}
}