java字符串 截取 各位 我想获取284_300_16_331_34_363_379_395_ 字符串中最后一个数(395(也有可能是两位数))用java怎么获取字符串长度不定 谢了!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String s = "284_300_16_331_34_363_379_395_";String[] ss= s.split("_");System.out.println(ss[ss.length - 1]); 用string[] a = a.split('_')将字符串变为数组,然后取数组最后一个元素就可以了 public static void main(String[] args) throws IOException { String str="284_300_16_331_34_363_379_395"; String temp; if("_".equals(str.substring(str.length()-1,str.length()))){ temp=str.substring(0,str.lastIndexOf("_")); }else{ temp=str; } System.out.println(temp.substring(temp.lastIndexOf("_")+1,temp.length()));} -1的单纯的split(“-”)最后面空格是不会进来的split(“-”,-1)这样的话就是-2了后面有个空字符 String s = "284_300_16_331_34_363_379_39_"; String[] ss= s.split("_"); System.out.println(ss[ss.length - 1]); 呃lz说这个字符串长度不固定,也就是说如果很长的话用“_”分割会产生一个长度很长的数组。这样会不会太占用资源。如果这样实现的话 大家看有没有什么问题:Pattern pattern = Pattern.compile("[0-9]*$");Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");\if(matcher.find()) System.out.println(matcher.group()); s.split("_");这个方法能够分割字符串,而且忽略_,所以能够达到你的目的 String s ="284_300_16_331_34_363_379_395_"; String s1=s; if(s.lastIndexOf("_")==s.length()-1){ s1 =s.substring(0,s.length()-1); } String last =s1.substring(s1.lastIndexOf("_")+1); System.out.println(last); String _s = "284_300_16_331_34_363_379_395_"; String _s0 = _s.substring(0, _s.length-1); int _last_index = _s0.lastIndexOf("_"); String _result = _s0.substring(_last_index+1);不知道这个效率如何? Pattern pattern = Pattern.compile("[0-9]{2,3}$");Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");if(matcher.find()) System.out.println(matcher.group()); 哎。。现在赚个分真难啊。。用String的split函数,都已经有这么多人贴出代码了。。 String str="284_300_16_331_34_363_379_395_"; String[] s=str.split("_"); System.out.println(s[s.length-1]); //这是楼上各位的,都很强大import java.util.regex.Matcher;import java.util.regex.Pattern;public class Split5 { public static void main(String args[]) { String s2 = "284_300_16_331_34_363_379_395_"; String[] ss = s2.split("_"); System.out.println(ss[ss.length - 1]); // String str = "284_300_16_331_34_363_379_395"; String temp; if ("_".equals(str.substring(str.length() - 1, str.length()))) { temp = str.substring(0, str.lastIndexOf("_")); } else { temp = str; } System.out.println(temp.substring(temp.lastIndexOf("_") + 1, temp .length())); // String s ="284_300_16_331_34_363_379_395_"; String s1=s; if(s.lastIndexOf("_")==s.length()-1){ s1 =s.substring(0,s.length()-1); } String last =s1.substring(s1.lastIndexOf("_")+1); System.out.println(last); // String sq = "284_300_16_331_34_363_379_395_"; String _s0 = sq.substring(0, sq.length()-1); int _last_index = _s0.lastIndexOf("_"); String _result = _s0.substring(_last_index+1); System.out.println(_result); // Pattern pattern = Pattern.compile("[0-9]{2,3}$"); Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34"); if(matcher.find()) System.out.println(matcher.group()); }} 用string[] a = a.split('_')将字符串变为数组,然后取数组最后一个元素就可以了 public class SplitString { public static void main(String[] args) { String s = "284_300_16_331_34_363_379_39s5_"; String[] ss= s.split("_"); System.out.println(ss[ss.length - 1]); }} public class SplitString { public static void main(String[] args) { String s = "284_300_16_331_34_363_379_39s5_"; String[] ss= s.split("_"); System.out.println(ss[ss.length - 1]); }} public static void main(String [] args){ String str="284_300_16_331_34_363_379_395_"; cutOut(str); cutOut2(str); cutOut3(str); } /** * 方法一 * @param str */ private static void cutOut(String str) { String [] arr=str.split("_"); int i=0; for (String s : arr) { System.out.println(i+": "+s); i++; } System.out.println(arr[arr.length-1]); } /** * 方法二 * @param str */ private static void cutOut2(String str) { String s=str; //判断最后一个是 _ int index=s.lastIndexOf("_"); if(index==str.length()-1){ s=s.substring(0,index); } System.out.println(s); System.out.println("方法二:"+(s.substring(s.lastIndexOf("_")+1,s.length()))); } /** * 方法三 * @param str */ private static void cutOut3(String str){ Pattern pattern=Pattern.compile("([0-9]{2,3})"); Matcher matcher=pattern.matcher(str); while(matcher.find()){ System.out.println(matcher.group()); } }建议使用方法二 String类里有这个方法。。你可以去查查 public static void main(String [] args){ String str="284_300_16_331_34_363_379_395_"; cutOut(str); cutOut2(str); cutOut3(str); } /** * 方法一 * @param str */ private static void cutOut(String str) { String [] arr=str.split("_"); System.out.println(arr[arr.length-1]); } /** * 方法二 * @param str */ private static void cutOut2(String str) { String s=str; //判断最后一个是 _ int index=s.lastIndexOf("_"); if(index==str.length()-1){ s=s.substring(0,index); } System.out.println(s); System.out.println("方法二:"+(s.substring(s.lastIndexOf("_")+1,s.length()))); } /** * 方法三 * @param str */ private static void cutOut3(String str){ Pattern pattern=Pattern.compile("^(.*_)(\\d+)(_?)$"); Matcher matcher=pattern.matcher(str); if(matcher.matches()){ System.out.println(matcher.group(2)); } else { System.out.println("Not match!"); } } public class Test { public static void main(String[] args) { String s = "284_300_16_331_34_363_379_395_"; String[] str = s.split("_"); System.out.println(str[str.length-1]); }}测试通过 关于Sring注入的一些问题 J2EE用户信息加密 tomcat升级到7.0.2 基础问题 用户登录 如何提高自己的java水品,如何找对自己在java方面的发展方向。 Hibernate 和sqlserver2000的问题 hibernate中UserType接口的小问题 谁能给我一个Struts动态表单的返回一个表格的所有数据。[高手指点] 有谁知道怎么解决 Timeout waiting for idle object(1000分求解) 请各路高手帮忙。。。。 Struts2 action路径问题 UDP 队列 读数据
String s = "284_300_16_331_34_363_379_395_";
String[] ss= s.split("_");
System.out.println(ss[ss.length - 1]);
public static void main(String[] args) throws IOException {
String str="284_300_16_331_34_363_379_395";
String temp;
if("_".equals(str.substring(str.length()-1,str.length()))){
temp=str.substring(0,str.lastIndexOf("_"));
}else{
temp=str;
}
System.out.println(temp.substring(temp.lastIndexOf("_")+1,temp.length()));
}
split(“-”,-1)这样的话就是-2了后面有个空字符
String[] ss= s.split("_");
System.out.println(ss[ss.length - 1]);
Pattern pattern = Pattern.compile("[0-9]*$");
Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");\
if(matcher.find())
System.out.println(matcher.group());
String s ="284_300_16_331_34_363_379_395_";
String s1=s;
if(s.lastIndexOf("_")==s.length()-1){
s1 =s.substring(0,s.length()-1);
}
String last =s1.substring(s1.lastIndexOf("_")+1);
System.out.println(last);
String _s = "284_300_16_331_34_363_379_395_";
String _s0 = _s.substring(0, _s.length-1);
int _last_index = _s0.lastIndexOf("_");
String _result = _s0.substring(_last_index+1);不知道这个效率如何?
Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");
if(matcher.find())
System.out.println(matcher.group());
用String的split函数,都已经有这么多人贴出代码了。。
String[] s=str.split("_");
System.out.println(s[s.length-1]);
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Split5 {
public static void main(String args[]) { String s2 = "284_300_16_331_34_363_379_395_";
String[] ss = s2.split("_");
System.out.println(ss[ss.length - 1]); //
String str = "284_300_16_331_34_363_379_395";
String temp;
if ("_".equals(str.substring(str.length() - 1, str.length()))) {
temp = str.substring(0, str.lastIndexOf("_"));
} else {
temp = str;
}
System.out.println(temp.substring(temp.lastIndexOf("_") + 1, temp
.length()));
//
String s ="284_300_16_331_34_363_379_395_";
String s1=s;
if(s.lastIndexOf("_")==s.length()-1){
s1 =s.substring(0,s.length()-1);
}
String last =s1.substring(s1.lastIndexOf("_")+1);
System.out.println(last);
//
String sq = "284_300_16_331_34_363_379_395_";
String _s0 = sq.substring(0, sq.length()-1);
int _last_index = _s0.lastIndexOf("_");
String _result = _s0.substring(_last_index+1);
System.out.println(_result);
//
Pattern pattern = Pattern.compile("[0-9]{2,3}$");
Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");
if(matcher.find())
System.out.println(matcher.group()); }}
String s = "284_300_16_331_34_363_379_39s5_";
String[] ss= s.split("_");
System.out.println(ss[ss.length - 1]);
}
}
String s = "284_300_16_331_34_363_379_39s5_";
String[] ss= s.split("_");
System.out.println(ss[ss.length - 1]);
}
}
cutOut(str);
cutOut2(str);
cutOut3(str);
}
/**
* 方法一
* @param str
*/
private static void cutOut(String str) {
String [] arr=str.split("_");
int i=0;
for (String s : arr) {
System.out.println(i+": "+s);
i++;
}
System.out.println(arr[arr.length-1]);
}
/**
* 方法二
* @param str
*/
private static void cutOut2(String str) {
String s=str;
//判断最后一个是 _
int index=s.lastIndexOf("_");
if(index==str.length()-1){
s=s.substring(0,index);
}
System.out.println(s);
System.out.println("方法二:"+(s.substring(s.lastIndexOf("_")+1,s.length())));
}
/**
* 方法三
* @param str
*/
private static void cutOut3(String str){
Pattern pattern=Pattern.compile("([0-9]{2,3})");
Matcher matcher=pattern.matcher(str);
while(matcher.find()){
System.out.println(matcher.group());
}
}建议使用方法二
public static void main(String [] args){
String str="284_300_16_331_34_363_379_395_";
cutOut(str);
cutOut2(str);
cutOut3(str);
}
/**
* 方法一
* @param str
*/
private static void cutOut(String str) {
String [] arr=str.split("_");
System.out.println(arr[arr.length-1]);
}
/**
* 方法二
* @param str
*/
private static void cutOut2(String str) {
String s=str;
//判断最后一个是 _
int index=s.lastIndexOf("_");
if(index==str.length()-1){
s=s.substring(0,index);
}
System.out.println(s);
System.out.println("方法二:"+(s.substring(s.lastIndexOf("_")+1,s.length())));
}
/**
* 方法三
* @param str
*/
private static void cutOut3(String str){
Pattern pattern=Pattern.compile("^(.*_)(\\d+)(_?)$");
Matcher matcher=pattern.matcher(str);
if(matcher.matches()){
System.out.println(matcher.group(2));
}
else
{
System.out.println("Not match!");
}
}
public class Test {
public static void main(String[] args) {
String s = "284_300_16_331_34_363_379_395_";
String[] str = s.split("_");
System.out.println(str[str.length-1]);
}
}测试通过