1.abc@def@mmm或@abc@def@mmm@拆分成数组,实现类似于String的split("@")方法,不能用string的正则方法
下面是解决方案:
方案一:
public static String[] split(String s,String rex){
System.out.println(s.length());
if(s.indexOf(rex)!=-1&&s.length()>=1){
long start=System.currentTimeMillis();
List<String> list=new ArrayList<String>();
int index=0;
int tindex=0;
while((tindex=s.indexOf(rex, index))!=-1){
if(tindex==0){
index++;
continue;
}
else{
String str=s.substring(index,tindex);
if(str.equals("")){
index++;
continue;
}
list.add(str);
index=tindex+1;
if(s.indexOf(rex, index)==-1&&index!=s.length()){
System.out.println(index);
list.add(s.substring(index));
}
}
}
System.out.println(Arrays.toString(list.toArray()));
long end=System.currentTimeMillis();
System.out.println(end-start);
return (String[]) list.toArray(new String[]{});
}
else{
return null;
}
}
方案二:
public static void main(String[] args) {
//String str = "@@ab@c@@@@@@def@mmm@";
String str = "ab@c@@@@@@def@mmm";
String temp = "";
boolean va = false;
List<String> list = new ArrayList<String>();
for(int i=0;i<str.length();i++){
String s = str.substring(i, i+1);
if(s.equals("@")){
if(!temp.equals("")){
list.add(temp);
temp = "";
}
}else{
temp += s;
}
//如果不为空
if(i== str.length()-1 && !temp.equals("")) {
list.add(temp);
}
}
for(String st : list){
System.out.println(st);
}
}
分享到:
相关推荐
* 使用一个字符串分割另一个字符串 * * @param delimiter 边界上的分隔字符 * @param haystack 输入的字符串 * @param out 输出的字符串指针 * @return 分割成了多少个成员 */ int explode(char *delimiter, ...
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
必须实现如下操作,字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),...
String对象的方法 方法一: indexOf() (推荐) var str = "123" console.log(str.indexOf("2") !...match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 方法三: search()
编写程序:从键盘上输入一个包含10个字符的字符串,把该字符串与程序中给定的字符串("bacdbcabca") //依次比较,统计两个字符串对应字符相等的数目。然后输出从键盘上输入的字符串, //并把两个字符串中对应字符不...
Delphi 7.0 提取字符串中指定子字符串后的字符串,这个平时在字符处理时候使用几率也挺高的,获取指定字符串后面的字符串,比如获取扩展名等也可以用此方法,本例中要用到After函数,测试时,当单击按钮时,执行以下...
输入一个字符串参数,返回该字符串的反序字符串
第一节、一道俩个字符串是否包含的问题 1.1、O(n*m)的轮询方法 1.2、O(mlogm)+O(nlogn)+O(m+n)的排序方法 1.3、O(n+m)的计数排序方法 第二节 2.1、O(n+m)的hashtable的方法 2.2、O(n+m)的数组存储方法 ...
串口接收字符串控制LED。通过STM32 串口1 接收字符串实现LED控制,程序通过判断\n识别字符串是否发送完成,所以串口调试助手上需勾选发送新行,发送LED1+ON点亮LED1,发送LED1+OFF关闭LED1
(1)所有字符串都用单引号(英文状态下输入)括起来; (2)将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。 (3)size指令获得串数组的大小。串中的每一个字符,包括中英文字符、空格、标点...
int strarray cat char arr [str max len] int i char str 把二维arr字符串数组拼接成一个串 i是第一维的长度 存入str int replacate char res int n char const str 产生n个重复的str 串或者字符 存入res ">几个...
设A 和B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符...试设计一个有效算法,对任给的2 个字符串A和B,计算出它们的编辑距离d(A,B)。 编程任务: 对于给定的字符串A和字符串B,编程计算其编辑距离d(A,B)。
求两个字符串的最长公共字符串 输出全部位置信息,并输出字符串,相同字符串先输出所有位置信息在输出字符串 测试平台:XP/VS 2008 CN
这个代码可以添加一个新的字符串到已有的字符串数组中,并确保不会重复添加相同的字符串。具体来说,它首先创建了一个包含3个字符串的字符串数组`strArray`,然后定义了一个新的字符串`newStr`。接着,使用`ismember...
必须实现如下操作,字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),完成...
给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...
这个代码,可以删除一个字符串中你想删除的字符或字符串
下面以一个字符串为例: 代码如下:string ss = “aaZ31 dd2f3”; string sss = ss.Replace(” “, “”);//将字符串ss中的空格去掉 string sss2 = Regex.Replace(ss, “[a-zA-Z]”, “”);//将字符串ss中的英文字母...
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); ...例1:直接查找字符串中是否具有某个字符串(返回”2″) std::string strPath = E:\\
我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数...