java中截取未知长度字符串主要是使用String类,示例如下:
/**
* @author cn
* @param s 要截取的字符串
* @param length 要截取字符串的长度->是字节一个汉字2个字节
* return 返回length长度的字符串(含汉字)
*/
private static String getTitleToTen(String s, int length) throws Exception
{
byte[] bytes = s.getBytes("Unicode");
int n = 0;
int i = 2;
for (; i < bytes.length && n < length; i++){
if (i % 2 == 0){
n++;
}else{
if (bytes[i] != 0){
n++;
}
}
}
/*if (i % 2 == 1){
if (bytes[i - 1] == 0)
i = i - 1;
else
i = i + 1;
}*/
//将截一半的汉字要保留
if (i % 2 == 1){
i = i + 1;
}
String eside = ".................................................................";
byte[] byteEside = eside.getBytes("Unicode");
String title = "";
if (bytes[i-1] == 0){
title = new String(bytes, 0, i, "Unicode")+new String(byteEside,0,40,"Unicode");
}else{
title = new String(bytes, 0, i, "Unicode")+new String(byteEside,0,38,"Unicode");
}
return title;
}
String[] str=s.split("\");//s是上面字符串
String s1=str[str.length-1];//s1是得到的字符串
不多说,上代码。用到截取子字符串函数substring(beginIndex, endIndex),用Math.random随机生成beginIndex, endIndex这两个参数。而这两个参数需要满足一定条件,开始索引要小于结束索引、两者不能相等、不能超出字符串长度、开始索引不能等于字符串长度、结束索引不能为0这些条件。
String s = "C:\Users\Administrator\Desktop\my\企业宣传网站\web\WebRoot\images\botton-cz.jpg";
String img = s.substring(s.indexOf("images\\"));