关于java截取字符串
所在位置:论坛首页 — 关于JAVA截取字符串 打印本页 保存页面
关于JAVA截取字符串
举了例子吧,有这样几个字符串:
String str1 = "dsaf3d&channelid=34567&dsfghh3"; String str2 = "channelid=87654&sdf452"; String str3 = "channelid=76543&channelid=76543"; channelid=的数字都是五位.
现在我想有这样一种方法,可以取得channelid=后面的那五位数字.
还望大家指教
回复内容
【liujun999999】:
public class Demo1{
public static void main(String args[]){ String str3 = "channelid=76543&channelid=76543"; String s[] = str3.split("&");
String s2 = "";
for(String k:s){
if(k.indexOf("channelid")!= -1){
s2 = k;
break;
}
}
s = s2.split("=");
System.out.println(s[1]);
}
}
【AWUSOFT】:
一定是五位,
String str2 = "channelid=87654&sdf452"; String strFFF =str2.subString(str2.indexOf("channelid")+"channelid".length()+1,5);
【grant999】:
String str1 = "dsaf3d&channelid=34567&dsfghh3";
String p="channelid=\\d{5}";
Pattern pp=Pattern.compile(p);
Matcher m=pp.matcher(str1);
while(m.find()){
System.out.println(m.group());
}
【tntvip】:
对一定是5位
【chenyifei211】:
package test1;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test14 {
/**
* @param args
*/
public static void main(String[] args) { // TODO 自动生成方法存根
String st = "dsaf3d&channelid=34567&dsfghh3";
Pattern p=Pattern.compile("channelid=(\\d{5})");
Matcher m=p.matcher(st);
StringBuffer sb=new StringBuffer(); while(m.find()){
sb=sb.append(m.group(1));
}
System.out.println(sb);
}
}
【bao110908】:
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class T1 {
public static void main(String[] args) {
List strList = new ArrayList();
strList.add("dsaf3d&channelid=34567&dsfghh3");
strList.add("channelid=87654&sdf452");
strList.add("channelid=76543&channelid=76543");
Pattern pattern = Pattern.compile("(=)(\\d{5})");
List numList = new ArrayList();
for (String str : strList) {
findPattern(str, pattern, 2, numList);
}
// 输出结果
for (String num : numList) {
System.out.println(num);
}
}
/**
* 从字符串中匹配指定的模式
* @param str 需要被查找的字符串
* @param pattern 匹配的模式
* @param index 需要匹配的结果在模式中的组位置
* @param list 保存匹配到的结果
*/
private static void findPattern(String str, Pattern pattern, int index,
List list) {
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
list.add(matcher.group(index));
}
}
}
【joejoe1991】:
package jsp;
import java.util.regex.*;
public class test {
public static void main(String[] args) {
String str1 = "dsaf3d&channelid=34567&dsfghh3";
String str2 = "channelid=87654&sdf452";
String str3 = "channelid=76543&channelid=76543";
String[] strarr=new String[3];
strarr[0]=str1;
strarr[1]=str2;
strarr[2]=str3;
Pattern pattern=Pattern.compile("=(\\d+)");
for (int i=0;i<3;i++)
{
Matcher matcher=pattern.matcher(strarr[i]);
while(matcher.find())
{
System.out.println(matcher.group(1));
}
}
}
}
【AWUSOFT】:
错了耶,应该是这样的
String str2 = "channelid=87654&sdf452";
int index = str2.indexOf("channelid")+"channelid".length()+1; String strFFF =str2.substring(index,index+5);
【AWUSOFT】:
String.substring(index,index+5);--(开始下标,结束下标) 一直想着(开始下标,截取长度);
【tntvip】:
AWUSOFT的方法最简单实用,我发分发给他.