关于JAVA截取字符串

tntvip 2007-08-09 01:02:24
举了例子吧,有这样几个字符串:
String str1 = "dsaf3d&channelid=34567&dsfghh3";
String str2 = "channelid=87654&sdf452";
String str3 = "channelid=76543&channelid=76543";
channelid=的数字都是五位.
现在我想有这样一种方法,可以取得channelid=后面的那五位数字.
还望大家指教
...全文
646 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tntvip 2007-08-09
  • 打赏
  • 举报
回复
AWUSOFT的方法最简单实用,我发分发给他.
awusoft 2007-08-09
  • 打赏
  • 举报
回复
String.substring(index,index+5);--(开始下标,结束下标)
一直想着(开始下标,截取长度);
awusoft 2007-08-09
  • 打赏
  • 举报
回复
错了耶,应该是这样的
String str2 = "channelid=87654&sdf452";
int index = str2.indexOf("channelid")+"channelid".length()+1;
String strFFF =str2.substring(index,index+5);
joejoe1991 2007-08-09
  • 打赏
  • 举报
回复
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));
}
}
}
}
  • 打赏
  • 举报
回复
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<String> strList = new ArrayList<String>();
    
    strList.add("dsaf3d&channelid=34567&dsfghh3");
    strList.add("channelid=87654&sdf452");
    strList.add("channelid=76543&channelid=76543");

    Pattern pattern = Pattern.compile("(=)(\\d{5})");
    List<String> numList = new ArrayList<String>();
    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<String> list) {
    Matcher matcher = pattern.matcher(str);
    while (matcher.find()) {
      list.add(matcher.group(index));
    }
  }
}
chenyifei211 2007-08-09
  • 打赏
  • 举报
回复
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);


}

}
tntvip 2007-08-09
  • 打赏
  • 举报
回复
对一定是5位
grant999 2007-08-09
  • 打赏
  • 举报
回复
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());
}
awusoft 2007-08-09
  • 打赏
  • 举报
回复
一定是五位?

String str2 = "channelid=87654&sdf452";
String strFFF =str2.subString(str2.indexOf("channelid")+"channelid".length()+1,5);
liujun999999 2007-08-09
  • 打赏
  • 举报
回复
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]);
}

}

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧