如何在第一个逗号之前拆分字符串?
How to split String before first comma?
我有一个覆盖字符串的方法,其中 returns 字符串格式为:
"abc,cde,def,fgh"
我想把字符串内容分成两部分:
第一个逗号前的字符串和
第一个逗号后的字符串
我的首要方法是:
@Override
protected void onPostExecute(String addressText) {
placeTitle.setText(addressText);
}
现在如何将字符串分成两部分,以便我可以使用它们来设置两个不同的文本TextView
?
String splitted[] =s.split(",",2); // will be matched 1 times.
splitted[0] //before the first comma. `abc`
splitted[1] //the whole String after the first comma. `cde,def,fgh`
如果您只想 cde
作为第一个逗号后的字符串。
然后你可以使用
String splitted[] =s.split(",",3); // will be matched 2 times
或无限制
String splitted[] =s.split(",");
不要忘记检查 length
以避免 ArrayIndexOutOfBound
。
String s =" abc,cde,def,fgh";
System.out.println("subString1="+ s.substring(0, s.indexOf(",")));
System.out.println("subString2="+ s.substring(s.indexOf(",") + 1, s.length()));
以下是您要搜索的内容:
public String[] split(",", 2)
这将给出 2 个字符串数组。拆分有 two versions. 你可以尝试的是
String str = "abc,def,ghi,jkl";
String [] twoStringArray= str.split(",", 2); //the main line
System.out.println("String befor comma = "+twoStringArray[0]);//abc
System.out.println("String after comma = "+twoStringArray[1]);//def,ghi,jkl
// Note the use of limit to prevent it from splitting into more than 2 parts
String [] parts = s.split(",", 2);
// ...setText(parts[0]);
// ...setText(parts[1]);
有关详细信息,请参阅此 documentation。
使用正则表达式拆分:
String splitted[] = addressText.split(",",2);
System.out.println(splitted[0]);
System.out.println(splitted[1]);
您可以使用以下代码片段
String str ="abc,cde,def,fgh";
String kept = str.substring( 0, str.indexOf(","));
String remainder = str.substring(str.indexOf(",")+1, str.length());
来自jse1.4
String
- 两个split
方法是新的。根据 String 现在实现的 CharSequence 接口的要求,添加了 subSequence 方法。添加了三个额外的方法:matches
、replaceAll
和 replaceFirst
.
使用 Java String.split(String regex, int limit)
with Pattern.quote(String s)
The string "boo:and:foo", for example, yields the following results with these parameters:
Regex Limit Result
: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }
String str = "abc?def,ghi?jkl,mno,pqr?stu,vwx?yz";
String quotedText = Pattern.quote( "?" );
// ? - \? we have to escape sequence of some characters, to avoid use Pattern.quote( "?" );
String[] split = str.split(quotedText, 2); // ["abc", "def,ghi?jkl,mno,pqr?stu,vwx?yz"]
for (String string : split) {
System.out.println( string );
}
我在 URL 参数中遇到了同样的问题,要解决它,我需要根据第一个 ?
进行拆分,以便剩余的字符串包含参数值,并且需要根据它们进行拆分&
.
String paramUrl = "https://www.google.co.in/search?q=encode+url&oq=encode+url";
String subURL = URLEncoder.encode( paramUrl, "UTF-8");
String myMainUrl = "http://example.com/index.html?url=" + subURL +"&name=chrome&version=56";
System.out.println("Main URL : "+ myMainUrl );
String decodeMainURL = URLDecoder.decode(myMainUrl, "UTF-8");
System.out.println("Main URL : "+ decodeMainURL );
String[] split = decodeMainURL.split(Pattern.quote( "?" ), 2);
String[] Parameters = split[1].split("&");
for (String param : Parameters) {
System.out.println( param );
}
Run Javascript on the JVM with Rhino/Nashorn « With JavaScript’s String.prototype.split
函数:
var str = "abc?def,ghi?jkl,mno,pqr?stu,vwx?yz";
var parts = str.split(',');
console.log( parts ); // (5) ["abc?def", "ghi?jkl", "mno", "pqr?stu", "vwx?yz"]
console.log( str.split('?') ); // (5) ["abc", "def,ghi", "jkl,mno,pqr", "stu,vwx", "yz"]
var twoparts = str.split(/,(.+)/);
console.log( parts ); // (3) ["abc?def", "ghi?jkl,mno,pqr?stu,vwx?yz", ""]
console.log( str.split(/\?(.+)/) ); // (3) ["abc", "def,ghi?jkl,mno,pqr?stu,vwx?yz", ""]
:在这种情况下,您可以使用 replaceAll 和一些正则表达式来获取此输入,这样您就可以使用 :
System.out.println("test another :::"+test.replaceAll("(\.*?),.*", ""));
如果密钥只是一个 String 你可以使用 (\D?),.*
System.out.println("test ::::"+test.replaceAll("(\D?),.*", ""));
public static int[] **stringToInt**(String inp,int n)
{
**int a[]=new int[n];**
int i=0;
for(i=0;i<n;i++)
{
if(inp.indexOf(",")==-1)
{
a[i]=Integer.parseInt(inp);
break;
}
else
{
a[i]=Integer.parseInt(inp.substring(0, inp.indexOf(",")));
inp=inp.substring(inp.indexOf(",")+1,inp.length());
}
}
return a;
}
我创建了这个功能。参数是 input string (String inp, here) 和 integer value(int n, here),这是一个数组的大小,它包含以逗号分隔的字符串中的值。您可以使用其他特殊字符从包含该字符的字符串中提取值。此函数将 return 大小为 n 的整数数组。
要使用,
String inp1="444,55";
int values[]=stringToInt(inp1,2);
我有一个覆盖字符串的方法,其中 returns 字符串格式为:
"abc,cde,def,fgh"
我想把字符串内容分成两部分:
第一个逗号前的字符串和
第一个逗号后的字符串
我的首要方法是:
@Override
protected void onPostExecute(String addressText) {
placeTitle.setText(addressText);
}
现在如何将字符串分成两部分,以便我可以使用它们来设置两个不同的文本TextView
?
String splitted[] =s.split(",",2); // will be matched 1 times.
splitted[0] //before the first comma. `abc`
splitted[1] //the whole String after the first comma. `cde,def,fgh`
如果您只想 cde
作为第一个逗号后的字符串。
然后你可以使用
String splitted[] =s.split(",",3); // will be matched 2 times
或无限制
String splitted[] =s.split(",");
不要忘记检查 length
以避免 ArrayIndexOutOfBound
。
String s =" abc,cde,def,fgh";
System.out.println("subString1="+ s.substring(0, s.indexOf(",")));
System.out.println("subString2="+ s.substring(s.indexOf(",") + 1, s.length()));
以下是您要搜索的内容:
public String[] split(",", 2)
这将给出 2 个字符串数组。拆分有 two versions. 你可以尝试的是
String str = "abc,def,ghi,jkl";
String [] twoStringArray= str.split(",", 2); //the main line
System.out.println("String befor comma = "+twoStringArray[0]);//abc
System.out.println("String after comma = "+twoStringArray[1]);//def,ghi,jkl
// Note the use of limit to prevent it from splitting into more than 2 parts
String [] parts = s.split(",", 2);
// ...setText(parts[0]);
// ...setText(parts[1]);
有关详细信息,请参阅此 documentation。
使用正则表达式拆分:
String splitted[] = addressText.split(",",2);
System.out.println(splitted[0]);
System.out.println(splitted[1]);
您可以使用以下代码片段
String str ="abc,cde,def,fgh";
String kept = str.substring( 0, str.indexOf(","));
String remainder = str.substring(str.indexOf(",")+1, str.length());
来自jse1.4
String
- 两个split
方法是新的。根据 String 现在实现的 CharSequence 接口的要求,添加了 subSequence 方法。添加了三个额外的方法:matches
、replaceAll
和 replaceFirst
.
使用 Java String.split(String regex, int limit)
with Pattern.quote(String s)
The string "boo:and:foo", for example, yields the following results with these parameters:
Regex Limit Result : 2 { "boo", "and:foo" } : 5 { "boo", "and", "foo" } : -2 { "boo", "and", "foo" } o 5 { "b", "", ":and:f", "", "" } o -2 { "b", "", ":and:f", "", "" } o 0 { "b", "", ":and:f" }
String str = "abc?def,ghi?jkl,mno,pqr?stu,vwx?yz";
String quotedText = Pattern.quote( "?" );
// ? - \? we have to escape sequence of some characters, to avoid use Pattern.quote( "?" );
String[] split = str.split(quotedText, 2); // ["abc", "def,ghi?jkl,mno,pqr?stu,vwx?yz"]
for (String string : split) {
System.out.println( string );
}
我在 URL 参数中遇到了同样的问题,要解决它,我需要根据第一个 ?
进行拆分,以便剩余的字符串包含参数值,并且需要根据它们进行拆分&
.
String paramUrl = "https://www.google.co.in/search?q=encode+url&oq=encode+url";
String subURL = URLEncoder.encode( paramUrl, "UTF-8");
String myMainUrl = "http://example.com/index.html?url=" + subURL +"&name=chrome&version=56";
System.out.println("Main URL : "+ myMainUrl );
String decodeMainURL = URLDecoder.decode(myMainUrl, "UTF-8");
System.out.println("Main URL : "+ decodeMainURL );
String[] split = decodeMainURL.split(Pattern.quote( "?" ), 2);
String[] Parameters = split[1].split("&");
for (String param : Parameters) {
System.out.println( param );
}
Run Javascript on the JVM with Rhino/Nashorn « With JavaScript’s String.prototype.split
函数:
var str = "abc?def,ghi?jkl,mno,pqr?stu,vwx?yz";
var parts = str.split(',');
console.log( parts ); // (5) ["abc?def", "ghi?jkl", "mno", "pqr?stu", "vwx?yz"]
console.log( str.split('?') ); // (5) ["abc", "def,ghi", "jkl,mno,pqr", "stu,vwx", "yz"]
var twoparts = str.split(/,(.+)/);
console.log( parts ); // (3) ["abc?def", "ghi?jkl,mno,pqr?stu,vwx?yz", ""]
console.log( str.split(/\?(.+)/) ); // (3) ["abc", "def,ghi?jkl,mno,pqr?stu,vwx?yz", ""]
:在这种情况下,您可以使用 replaceAll 和一些正则表达式来获取此输入,这样您就可以使用 :
System.out.println("test another :::"+test.replaceAll("(\.*?),.*", ""));
如果密钥只是一个 String 你可以使用 (\D?),.*
System.out.println("test ::::"+test.replaceAll("(\D?),.*", ""));
public static int[] **stringToInt**(String inp,int n)
{
**int a[]=new int[n];**
int i=0;
for(i=0;i<n;i++)
{
if(inp.indexOf(",")==-1)
{
a[i]=Integer.parseInt(inp);
break;
}
else
{
a[i]=Integer.parseInt(inp.substring(0, inp.indexOf(",")));
inp=inp.substring(inp.indexOf(",")+1,inp.length());
}
}
return a;
}
我创建了这个功能。参数是 input string (String inp, here) 和 integer value(int n, here),这是一个数组的大小,它包含以逗号分隔的字符串中的值。您可以使用其他特殊字符从包含该字符的字符串中提取值。此函数将 return 大小为 n 的整数数组。
要使用,
String inp1="444,55";
int values[]=stringToInt(inp1,2);