java分割⼦字符串,Java字符串分割截取的⽅法
(substring,split,Str。。。
需求,把”01:⼤汽车”,分成01和⼤汽车
有两种做法:⼀是substring
package test;
public class substringTest
{
public static void main(String args[])
java中split的用法{
String N = "01:⼤汽车";
String L="";
String R="";
int k= N.length();
for (int i = 0; i < N.length(); i++)
{
if (N.substring(i, i + 1).equals("|"))
{
L=N.substring(0,i).trim();
R=N.substring(i+1,k).trim();
}
else
{
}
System.out.println(L);
System.out.println(R);
}
}
}
另外⼀种⽅法
package Test
public class splitTest
{
public static void main(String[] args)
{
String s = new String("01:⼤汽车");
String a[] = s.split(":");
System.out.println(a[0]);
System.out.println(a[1]);
}
}
split分割字母和数字,简单正则缝隙
public class Test01 {
public static void main(String[] args) {
String str = "one123";
String regex = "(?<=one)(?=123)";
String[] strs = str.split(regex);
for(int i = 0; i < strs.length; i++) {
System.out.printf("strs[%d] = %s%n", i, strs[i]);
}
}
}
1. substring讲解:
s=s.substring(int begin);截取掉s从⾸字母起长度为begin的字符串,将剩余字符串赋值给s;
s=s.substring(int begin,int end);截取s中从begin开始⾄end结束时的字符串,并将其赋值给s;在String中有两个substring()函数,如下:
⼀:String.substring(int start)
参数:
start:要截取位置的索引
返回:
从start开始到结束的字符串
例如:String str = “hello word!”; System.out.println(str.substring(1));
System.out.println(str.substring(3));
System.out.println(str.substring(6));
将得到结果为:
ello word!
lo word!
ord!
如果start⼤于字符串的长度将会抛出越界异常;
⼆:String.substring(int beginIndex, int endIndex)
参数:
beginIndex 开始位置索引
endIndex 结束位置索引
返回:
从beginIndex位置到endIndex位置内的字符串
例如:String str = “hello word!”;
System.out.println(str.substring(1,4));
System.out.println(str.substring(3,5));
System.out.println(str.substring(0,4));
将得到结果为:
ell
lo
hell
如果startIndex和endIndex其中有越界的将会抛出越界异常。
2. split讲解:
java.lang.string.split
split ⽅法
将⼀个字符串分割为⼦字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]])
参数
stringObj
必选项。要被分解的 String 对象或⽂字。该对象不会被 split ⽅法修改。
separator
可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使⽤的是⼀个还是多个字符。如果忽略该选项,返回包含整个字符串的单⼀元素数组。
limit
可选项。该值⽤来限制返回数组中的元素个数。
说明
split ⽅法的结果是⼀个字符串数组,在 stingObj 中每个出现 separator 的位置都要进⾏分解。separator 不作为任何数组元素的部分返回。
split 的实现直接调⽤的 matcher 类的 split 的⽅法。“ . ”在正则表达式中有特殊的含义,因此我们使⽤的时候必须进⾏转义。
package com.c2;
//写⼀个spli的⽤法,数字类 ===分割字符串
public class yqw {
public static void main(String[] args) {
String a = "192.168.43.130";
String c[] = a.split("\\.");// 数组
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
}
}
/
/
192
168
43
130
在java.lang包中有String.split()⽅法,返回是⼀个数组。
1、“.”和“|”都是转义字符,必须得加”\\”;
如果⽤“.”作为分隔的话,必须是如下写法:
String.split(“\\.”),这样才能正确的分隔开,不能⽤String.split(“.”);
如果⽤“|”作为分隔的话,必须是如下写法:
String.split(“\\|”),这样才能正确的分隔开,不能⽤String.split(“|”);
2、如果在⼀个字符串中有多个分隔符,可以⽤“|”作为连字符,⽐如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以⽤
String.split(“and|or”);
3、public String[] split(String regex,int limit)根据匹配给定的正则表达式来拆分此字符串。
此⽅法返回的数组包含此字符串的每个⼦字符串,这些⼦字符串由另⼀个匹配给定的表达式的⼦字符串终⽌或由字符串结束来终⽌。数组中
的⼦字符串按它们在此字符串中的顺序排列。如果表达式不匹配输⼊的任何部分,则结果数组只具有⼀个元素,即此字符串。
4、public string[] split(string regex)
这⾥的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是⼀个简单的分割⽤的字符,⽽是⼀个正则表达式,
他对⼀些特殊的字符可能会出现你预想不到的结果,⽐如测试下⾯的代码:
(1) ⽤竖线 | 分隔字符串,你将得不到预期的结果
String[]aa= “aaa|bbb|ccc”.split(“|”); //String[] aa = “aaa|bbb|ccc”.split(“\\|”); 这样才能得到正确的结果 for (inti= 0 ;i
(2)⽤竖 * 分隔字符串运⾏将抛出PatternSyntaxException异常,⽤加号 + 也是如此。
String[]aa= “aaa*bbb*ccc”.split(“*”); //String[] aa = “aaa|bbb|ccc”.split(“\\*”); 这样才能得到正确的结果 for (inti= 0 ;i
(3)显然,+ * 不是有效的模式匹配规则表达式,⽤”\\*” “\\+”转义后即可得到正确的结果。
(4) “|” 分隔串时虽然能够执⾏,但是却不是预期的⽬的,”\\|”转义后即可得到正确的结果。
(5)还有如果想在串中使⽤””字符,则也需要转义.⾸先要表达”aaaa\bbbb”这个串就应该⽤”aaaa\\bbbb”,如果要分隔就应该这样才能得到正确结果:
String[] aa = “aaa\\bbb\\bccc”.split(\\\\);
(6) 还有就是点号”.”,也要⾸先转义才能得到正确的结果。
第⼀种⽅法:
string s="abcdeabcdeabcde";
string[] sArray=s.Split('c') ;
foreach(string i in sArray) Console.WriteLine(i.ToString());
输出下⾯的结果:
ab
deab
deab
de
第⼆种⽅法:
我们看到了结果是以⼀个指定的字符进⾏的分割。使⽤另⼀种构造⽅法对多个字符进⾏分割:
string s="abcdeabcdeabcde";
string[] sArray1=s.Split(new char[3]{'c','d','e'}) ;
foreach(string i in sArray1) Console.WriteLine(i.ToString());
可以输出下⾯的结果:
ab
ab
ab
第三种⽅法:
除了以上的这两种⽅法以外,第三种⽅法是使⽤正则表达式。新建⼀个控制台项⽬。
然后先添加 using System.Text.RegularExpressions;
using System.Text.RegularExpressions
string content=agcsmallmacsmallgggsmallytx;
string[] resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)
foreach(string i in resultString) Console.WriteLine(i.ToString());
输出下⾯的结果:
agc
mac
ggg
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论