请教:JAVA中英文字符串截取的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教:JAVA中英文字符串截取的问题相关的知识,希望对你有一定的参考价值。

字符串是这样的,String s = "a99中国b香港c恒生d",希望能够截取的效果为a99,中国,b,香港,c,恒生,d,装入String数组或者List都可以。
这个字符串是随机的动态的。

//完整程序如下,字符串可以随机的:
import java.util.Iterator;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Grouping

/**
* @param args
*/
public static void main(String[] args)
// TODO 自动生成方法存根
String s = "a99中国b香港c恒生dd嘿嘿";
String regex = "\\w";
Pattern p = Pattern.compile(regex);
String intercept = "";
String intercept2 = "";
Vector<String> output = new Vector<String>();

for(int i = 0;i < s.length();i ++)
String input = s.substring(i,i + 1);
Matcher m = p.matcher(input);
boolean b = m.matches();
if(b)
output.add(intercept2);
intercept2 = "";
intercept = intercept + input;

else
output.add(intercept);
intercept = "";
intercept2 = intercept2 + input;


//添加最后一串字符
if(intercept.equals(""))
output.add(intercept2);
else
output.add(intercept);


Iterator it = output.iterator();
System.out.println("原始字符串为:" + s);
System.out.print("分隔后的字符串为:");
while(it.hasNext())
System.out.print(((String)it.next()).trim());
if(it.hasNext())
System.out.print(" ");




参考技术A public class Test
public static void main(String []args)
Test2 t=new Test2();
t.math();


class Test2
public void math()
String s="a99中国b香港c恒生d";
String []str=new String[7];
str[0]=s.substring(0,3);
str[1]=s.substring(3,5);
str[2]=s.substring(5,6);
str[3]=s.substring(6,8);
str[4]=s.substring(8,9);
str[5]=s.substring(9,11);
str[6]=s.substring(11);
for(int i=0;i<str.length;i++)
System.out.println(str[i]);


参考技术B ArrayList list=new ArrayList();
list.add(s.substring(0,3));
list.add(s.substring(3,5));
list.add(s.substring(5,6));
list.add(s.substring(6,8));
list.add(s.substring(8,9));
list.add(s.substring(9,11));
list.add(s.substring(11));
for(int i=0;i<list.size();i++)
System.out.println(list.get(i));
参考技术C 这种字符串我觉得只能采取死办法截取了。
String str = "a99中国b香港c恒生d";
String[] array = new String[7];
array[0] = str.substring(0,3);//a99
array[1] = str.substring(3,5);//中国
array[2] = str.substring(5,6);//b
array[3] = str.substring(6,8);//香港
array[4] = str.substring(8,9);//c
array[5] = str.substring(9,11);//恒生
array[6] = str.substring(11,12);//d

既然是随机的,你就自定义个字符串格式吧。比如前三位是什么,中间三位是什么,后三位是什么。字符串变换也只是依照格式来变化。动态接续随机变化的字符串不好整哦。
参考技术D 如果是动态变化的,一点规律都没有,那么我想,楼主不如先将生成的字符串最好能加个什么有规律的分隔符什么的,再截取,就可以了.不然,想实现太难了. 第5个回答  2008-06-20 这个长度应该不是固定的,而数字字符这个格式才是能确定的。说个笨思路:从第二个char开始判断是否与前一个char是否同属数字或字符,遍历,最后一个char停止。效率是不怎么理想,呵呵,可是这个随机且动态是不好控制的。

以上是关于请教:JAVA中英文字符串截取的问题的主要内容,如果未能解决你的问题,请参考以下文章

自定义截取数,截取字符串,返回字符串数组。

java中如何截取一个字符串里的英文和数字组合

java截取中文字符串。

JAVA中:中英文混合的字符串按字节截取问题

VC++ 关于截取图象并保存进数据库的问题

java截取汉字字符串问题