java字符串 截取
各位
我想获取
284_300_16_331_34_363_379_395_ 字符串中最后一个数(395(也有可能是两位数))
用java怎么获取
字符串长度不定
谢了!!
[解决办法]
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()));
}
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);
//这是楼上各位的,都很强大
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());
}
}
* 方法三
* @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]);
}
}