用java实现 333a12333435
用函数实现 提取字符串 a12和4和5
输出结果为 :
a12
4
5 定义函数f(String str,char del) 来实现
del 代表3 (这是例子,就是这个意思 但也有可能会有更多字符串如aaa125aaa586aaaa235aaa58aa) 注: 不允许用split 方法
求代码
谢谢
用函数实现 提取字符串 a12和4和5
输出结果为 :
a12
4
5 定义函数f(String str,char del) 来实现
del 代表3 (这是例子,就是这个意思 但也有可能会有更多字符串如aaa125aaa586aaaa235aaa58aa) 注: 不允许用split 方法
求代码
谢谢
public static List<String> f(String str, char del)
{
List<String> list = new ArrayList<String>();
Pattern p = Pattern.compile(del + "+");
Matcher m = p.matcher(str);
int index = 0;
int start, end;
while(m.find())
{
start = m.start();
end = m.end();
if(start != index)
{
list.add(str.substring(index, start));
}
index = end;
}
if(index != str.length())
{
list.add(str.substring(index, str.length()));
}
return list;
}
public static void main(String[] args)
{
String str = "333a12333435";
List<String> list = f(str, '3');
for(String s: list)
{
System.out.println(s);
}
}
文件名testSplit.javapublic class testSplit
{
public static void main(String[] strgs)
{
String str="aaa125aaa586aaaa235aaa58aa";
char del='a';
testSplit ts=new testSplit();
ts.f(str,del);
}
void f(String str,char del)
{
for(int i=0;i<str.length();i++)
{
while(str.charAt(i)==del&&i!=str.length()-1)i++;
while(str.charAt(i)!=del&&i!=str.length()-1)
{
System.out.print(str.charAt(i));
i++;
}
System.out.println("");
}
}
}
E:\学习\java\UltraEdit\csdn>java testSplit
125
586
235
58LZ可以参考
没买到分吗
我也想多给分忘记说了 只能用String的基本方法,不要加载太多包(1楼)谢谢 3楼 你能不能 加上substring()方法呢
公司要求用substring()方法来截取
要截成 单个的字符串
谢谢
老大,你这个循环也太恐怖了吧,hoho
public static void main(String[] args)
{
String str = "aaa125aaa586aaaa235aaa58aa";
char ch = 'a';
int index = 0;
String sub;
for(int i = 0; i < str.length(); i++)
{
if(ch == str.charAt(i))
{
sub = str.substring(index, i);
if(!sub.equals(""))
{
System.out.println(str.substring(index, i));
}
index = i + 1;
}
}
if(index < str.length())
{
System.out.println(str.substring(index));
}
}
void delete(String str,char del){
char[] chars = str.toCharArray();
boolean flag = false;
int count = 0;//非删除字符的数量
int end = chars.length-1;
for(int i=0;i<=end;i++){
//如果删除字符的前面为非删除字符,就将非删除字符打印出来
if(count!=0&&chars[i]==del&&!flag){
System.out.println(str.substring(i-count, i));
flag = true;
count = 0;
}
if(chars[i]!=del){
flag = false;
count++;
}
}
if(chars[end]!=del)//以非删除字符结尾
System.out.println(str.substring(end-count+1));
}
{
void del(String str,char c){
for(int i=0;i<str.length();i++){
if(str.charAt(i)!=c)
{
//从第一个非指定字符截断
String str2=str.substring(i,str.length());
//得到新串中第一个出现指定字符的索引
int j=str2.indexOf(c);
//判断该索引是否存在
if(j!=-1){
//存在,打印出来,并将原串值及i值改变,
System.out.println(str2.substring(0,j));
str=str2;
i=str.indexOf(c);
}else{
//不存在,直接打印
System.out.println(str2.substring(0,str2.length()));
break;
}
}
}
} public static void main(String[] args)
{
TestDemo5 td=new TestDemo5();
String str="333a1233343512533364833333734561343";
char c='3';
td.del(str,c);
}
}
---------- java解释器 ----------
a12
4
5125
648
7
4561
4输出完毕 (耗时 0 秒)