请问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个","中的字符 展开
如:
test=360000,360001,360002,aaaa,bbbbb,cccaaa,55555,343434,fdsfadsf
我想截取"test"中的第四个","和第五个","中的字符,请问如何操作?
万分感谢!
我是读学者,希望能有针对本题的代码,有注释追加100分!
我的意思不尽是要截取"test"中的第四个","和第五个","中的字符
还要能截取"test"中的第1个","和第2个","中的字符以及想截取"test"中的第3个","和第4个","中的字符 展开
13个回答
展开全部
两种方法:在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类。
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类。
展开全部
根据你不同的需求,我给你提供了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();
}
}
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于问题补充差点晕倒~~,楼主服了你了
截取第一个,就是: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个元素就是你要得到的数据了。
截取第一个,就是: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个元素就是你要得到的数据了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
// 用String的split函数拆分字符串
String[] result = test.split(",");
// 遍历拆分后的每个字符串
for (String str : result) {
System.out.println(str);
}
String[] result = test.split(",");
// 遍历拆分后的每个字符串
for (String str : result) {
System.out.println(str);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//用这个方法....
//参数说明: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;
}
//参数说明: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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询