-
string str = "abcdefg";str = str.Substring(0, str.LastIndexOf("c"));Response.Write(str);
输出效果:
lastIndexOf(“c”) 就是截取c前面的字符串。
2、
String str = "125aa_13_";
if (StringUtils.isNotEmpty(str)) {
str = str.substring(0, str.lastIndexOf("_") != -1 ?
str.lastIndexOf("_") :str.length());
}
下横线不在首位:
输出结果:
下横线在首位:
当字符串为
输出结果为:
也就是lastIndexOf(“_”)从后到前,截取“_”之前的所有元素,如果“_”在首位,则输出结果为空。
二、Substring()
string qian = null;
string hou = null;
string str = "abcdefg";
qian = str.Substring(0, 1);//从第一个开始截取,共截取一位
hou = str.Substring(str.Length - 1, 1);//从最后一个开始截取,共截取一位
Response.Write(qian + "***" + hou);
输出效果:
//编写一个Java程序,完成以下功能:
// 声明一个名为s的String对象,并使它的内容是"Under the sunshine";
// 打印整个字符串。
// 打印字符串的长度/*长度包括空格,字母等的长度*/
// 打印字符串的第一个字符
// 打印字符串的最后一个字符
// 方法打印字符串的第一个单词。
public class Student{
public static void main(String[] args) {
String s = "Under the sunshine";
int len = s.length();
char charAt=s.charAt(0);/*0是下标,表示第1个,以此类推其它的*/
char charAt2=s.charAt(len-1);/*len-1是下标,表示第len个
char只能表示单个字符
千万不要写len这个下标,会报错,因为不存在len这个下标,下标最大为len-1*/
System.out.println(s);
System.out.println( "Under the sunshine长度 : " + len );
System.out.println( "Under the sunshine的第一个字符 : " + charAt );
System.out.println( "Under the sunshine的最后一个字符 : " + charAt2 );
String a=s.substring(s.lastIndexOf(" ")+1);
String a1=s.substring(s.lastIndexOf(" "));
String a2=s.substring(s.lastIndexOf(" ")+2);
String a3=s.substring(s.lastIndexOf(" ")-1);
System.out.println("字符串的最后一个单词"+a);
System.out.println("字符串的最后一个单词"+a1);
System.out.println("字符串的最后一个单词减去最后空格后一个字母"+a2);
System.out.println("字符串的最后一个单词加上最后空格前一个字母"+a3);
String b=s.substring(0,5);
System.out.println("字符串的第一个单词:"+b);
/*IndexOf、LastIndexOf都是返回一个位置,是个整数值;找不到都会自动返回 -1;
* 一般来说,用户自定义的子函数如果返回值为 0,表示逻辑值为假值,
* 若返回 1,表示逻辑值为真,返回 -1 表示失败、或者是结束状态
IndexOf是从左向右查,LastIndexOf是从右向左查,
不管是IndexOf还是LastIndexOf,索引序列都是从左到右的(起始值是0)
Substring是字符串截取,返回值是一个截取后的字符串。
*/