请问JSP 如何截取一串字符中的一段

请问JSP如何截取一串字符中的一段如:test=360000,360001,360002,aaaa,bbbbb,cccaaa,55555,343434,fdsfadsf我... 请问JSP 如何截取一串字符中的一段
如:
test=360000,360001,360002,aaaa,bbbbb,cccaaa,55555,343434,fdsfadsf
我想截取"test"中的第四个","和第五个","中的字符,请问如何操作?
万分感谢!
我是读学者,希望能有针对本题的代码,有注释追加100分!
我的意思不尽是要截取"test"中的第四个","和第五个","中的字符
还要能截取"test"中的第1个","和第2个","中的字符以及想截取"test"中的第3个","和第4个","中的字符
展开
 我来答
yehaizi_2008
推荐于2016-08-25 · TA获得超过276个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:323万
展开全部
两种方法:在JSP页面中
1.使用public String[] split(String regex)根据给定的正则表达式的匹配来拆分此字符串。
<%!
public String getString(int i){
String test="360000,360001,360002,aaaa,bbbbb,cccaaa,55555,343434,fdsfadsf" ;
String[] str=test.split(",");
/*第4个元素就是第4个","和第5个","之间的字符串,str[]数组放着以","为断点截取的所有字符串根据你的需要提取数组中的元素就可以了
第一个","的字符串是str[0]
第一到第二个","的字符串是str[1]
第2个到第3个","的字符串是str[2]
第3个到第4个","的字符串是str[3]
第4个到第5个","的字符串是str[4].......*/

return str[i];
}
>
2.
<%!
public String getString(){
String test="360000,360001,360002,aaaa,bbbbb,cccaaa,55555,343434,fdsfadsf" ;
//创建一个数组用于存放字符‘,’出现的位置的索引。
int[] num=new int[10];
int count=0;
//截取每一个字符,如果字符==','就将这个字符的位置存放到数组中,同时数组的下标+1;
for(int i=0;i<test.length();i++){
if(test.charAt(i)==','){
num[count]=i;
count++;
}
}
/*第4个字符的位置应该等于num[3],第5个字符的位置应该等于num[4],但是substring()方法截取字符串时包含开始位置字符,不包含结束位置字符。所以num[3]要+1。*/
String str=test.substring(num[3]+1,num[4]);
//反回截取字符串
return str;
}

%>

在JSP页面中使用的地方用<%=getString()>调用就可以了。
相见Java API String类。
百度网友9201f4d
2008-06-22
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
根据你不同的需求,我给你提供了4种方法,1、2种是截取某一位置的子串,如你问题中提到的;3、4种提供了更灵活的截取方式,可以截取任意两个分隔符之间的子串,可以不是连续的,例如截取第1个和第4个分隔符之间的子串。代码如下:

import java.util.StringTokenizer;

public class Test {
public static void main(String[] args) {
Test t = new Test();
String testString = "360000,360001,360002,aaaa,bbbbb,cccaaa,55555,343434,fdsfadsf";
System.out.println(t.getSubString1(testString, 5, ","));
System.out.println(t.getSubString2(testString, 5, ","));
System.out.println(t.getSubString3(testString, 2, 5, ","));
System.out.println(t.getSubString4(testString, 1, 3, ","));
}

/**
* 截取一个字符串中指定位置的子字符串。
* @param str 要截取的字符串
* @param index 要截取子串的位置
* @param delim 分隔符
* @return 截取后得到的子串
*/
public String getSubString1(String str, int index, String delim) {
StringTokenizer st = new StringTokenizer(str, delim);
for (int i = 0; i < st.countTokens(); i++) {
String s = st.nextToken();
if ((index - 1) == i) { //java数组中是从0开始计数的,所以要减1后再做比较
return s;
}
}
return null;
}

/**
* 截取一个字符串中指定位置的子字符串(用正则表达式进行分割)。
* @param str 要截取的字符串
* @param index 要截取子串的位置
* @param delim 分隔符(正则表达式)
* @return 截取后得到的子串
*/
public String getSubString2(String str, int index, String delim) {
String[] strs = str.split(delim);
return strs[index - 1]; //java数组中是从0开始计数的,所以要减1
}

/**
* 截取一个字符串中任意两个分隔符之间的子字符串。
* @param str 要截取的字符串
* @param indexBegin 开始截取的分隔符序号
* @param indexEnd 截取结束的分隔符序号
* @param delim 分隔符
* @return 截取后得到的子串
*/
public String getSubString3(String str, int indexBegin, int indexEnd, String delim) {
StringTokenizer st = new StringTokenizer(str, delim);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < st.countTokens(); i++) {
String s = st.nextToken();
if (i >= indexBegin && i < indexEnd) {
sb.append(s);
if (i < indexEnd - 1) { //添加分隔符
sb.append(delim);
}
}
}
return sb.toString(); //java数组中是从0开始计数的,所以要减1
}

/**
* 截取一个字符串中任意两个分隔符之间的子字符串(用正则表达式进行分割)。
* @param str 要截取的字符串
* @param indexBegin 开始截取的分隔符序号
* @param indexEnd 截取结束的分隔符序号
* @param delim 分隔符(正则表达式)
* @return 截取后得到的子串
*/
public String getSubString4(String str, int indexBegin, int indexEnd, String delim) {
String[] strs = str.split(delim);
StringBuilder sb = new StringBuilder();
for (int i = indexBegin; i < indexEnd; i++) {
sb.append(strs[i]);
if (i < indexEnd - 1) { //添加分隔符
sb.append(delim);
}
}
return sb.toString();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江湖喵喵喵
2008-06-11 · TA获得超过360个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:43.6万
展开全部
对于问题补充差点晕倒~~,楼主服了你了
截取第一个,就是:test.split(",")[0],
截取第二个,就是:test.split(",")[1],
截取最后一个,就是test.split(",")[test.split(",").length-1]

String test="360000,360001,360002,aaaa,bbbbb,cccaaa,55555,343434,fdsfadsf";
System.out.println(test.split(",")[4]);

test.split(",")[4];

这个是最优美的了。
,用作分隔符,把test字符转换为匿名的字符数组(无引用),然后这个匿名字符数组的第5个元素就是你要得到的数据了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tenderghost
2008-06-11 · TA获得超过320个赞
知道小有建树答主
回答量:532
采纳率:0%
帮助的人:0
展开全部
// 用String的split函数拆分字符串
String[] result = test.split(",");
// 遍历拆分后的每个字符串
for (String str : result) {
System.out.println(str);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘祺枫
2008-06-20 · 超过12用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:42.8万
展开全部
//用这个方法....
//参数说明:s是源字符串,start是开始的位置,end是结束位置,c是你要索引的字符
public String subString(String s,int start,int end,String c){
String[] str=s.split(c);
String st="";
if (start>0) {
for (int i = start; i < end; i++) {
if (i!=end-1) {
st+=str[i]+",";
}else{
st+=str[i];
}
}
}else{
st=null;
}
return st;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式