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);
}
}
分享到:
相关推荐
1. RF字符串截取: 正则表达式提供了灵活的字符串截取方式。通过定义匹配模式,可以精确地提取出字符串中符合特定规则的部分。例如,如果你有一个URL字符串`http://www.pudn.com/downloads123/ebooks/xxx.zip`,你...
字符串相似度度量算法如Levenshtein距离提供了一种衡量两个字符串之间差异的方法,而最长回文串问题可通过Manacher算法高效解决。字符串匹配是解决许多实际问题的关键技术,它包括单模式匹配和多模式匹配两大类。 ...
在VB(Visual Basic)编程中,处理字符串是常见的任务之一,其中包括将一个长字符串拆分成多个子字符串。这个过程通常称为“字符串拆分”或“分隔字符串”。在这个主题中,我们将深入探讨VB中如何实现这一操作,以及...
1. **IndexOf**:此方法用于查找指定字符串在当前字符串中的第一次出现位置。返回值是子字符串的起始索引,如果未找到则返回-1。 2. **Substring**:根据提供的起始索引和长度,截取字符串的一部分。 例如,假设...
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
* 使用一个字符串分割另一个字符串 * * @param delimiter 边界上的分隔字符 * @param haystack 输入的字符串 * @param out 输出的字符串指针 * @return 分割成了多少个成员 */ int explode(char *delimiter, ...
1. 分割十六进制字符串:由于每个ASCII字符由两个十六进制数字组成,我们需要将输入的十六进制字符串按每两个字符进行分割,形成一个十六进制数字的数组。 2. 转换为数值:对分割后的数组中的每个十六进制数字,...
如果C语言字符串是宽字符串,可以使用Py_BuildValue()函数或PyUnicode_FromWideChar()函数来构建一个字符串,例如: ```c wchar_t *w; /* Wide character string */ int len; /* Length */ PyObject *obj = Py_...
标题 "比较字符串1" 描述的是一个算法训练问题,旨在比较两个字符串的字典序,并在它们不相等时找出第一个不同的字符。这个问题涉及到的主要知识点包括字符串操作、字典序比较以及基本的ASCII码理解。 首先,我们...
在IT领域,字符串处理是一项基础且重要的任务,尤其是在编程语言如C#中。"统计字符串中子字符串出现的次数,并返回"是一个常见的需求,广泛应用于...通过深入理解和实践这些知识点,可以更好地应对各种字符串处理问题。
对于给定的字符串A和B,试设计一个算法,计算其扩展距离。 ?编程任务: 对于给定的字符串A和B,编程计算其扩展距离。 Input 由文件input.txt给出输入数据。第1 行是字符串A;第2 行是字符串B。第3行是空格 与...
标题提到的“C#中在一个字符串中删除另一个字符或字符串”涉及到的关键知识点主要包括字符串操作、字符数组、字符串替换以及正则表达式。以下将详细讲解这些知识点。 首先,C#中的字符串(`string`)是不可变的,这...
在LabVIEW中处理字符串是一项常见的任务,尤其是将一个字符串拆分成多个子字符串,这通常涉及到字符串的分割操作。本篇将详细介绍如何在LabVIEW中实现“字符串拆分到数组”并支持中文字符。 一、字符串拆分的基本...
-- 初始化子字符串数量为1,因为即使没有分隔符,也至少有一个完整的字符串 WHILE @Location <> 0 -- 如果未找到分隔符,则@Location的值为0 BEGIN SET @Start = @Location + 1; -- 更新查找分隔符的起始位置 ...
必须实现如下操作,字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),...
String对象的方法 方法一: indexOf() (推荐) var str = "123" console.log(str.indexOf("2") !...match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 方法三: search()
1. **字符串函数面板**: 在LabVIEW中,所有的字符串函数都位于函数面板的“字符串”类别下。你可以通过菜单栏的“函数”->“字符串”来访问它。这里包含了大量的字符串处理函数,例如“删除字符”、“替换字符串”...
通过编写代码并调试,我们可以创建一个灵活的函数,它接受一个1-9位数字字符串和一个排序条件作为输入,然后返回满足条件的重新排序的新字符串。这样的练习对于提升编程能力,尤其是逻辑思维和问题解决能力非常有...
1. 固定位置截取:这种方法通常基于起始位置和结束位置来获取字符串的一部分。例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,其中`start`是开始索引,`end`是结束索引(不包括该位置的字符)。...
假设我们有一个较长的字符串,但只关心其中的一部分,比如从第3个字符开始的4个字符: ```scl STRING LongString := "ABCDEFGHIJ"; STRING SubString; SubString := SUBSTRING(LongString, 2, 4); // 从索引2开始,...