1.字符串最后一个单词的长度(思路:倒着循环字符串,遇到空格跳出循环)
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int length = str.length();
int count = 0;
for (int i = length - 1; i >= 0; i--) {
if (str.charAt(i)==' ') { // 或者 if (str.substring(i, i + 1).equals(" ")) {
break;
}
count++;
}
System.out.println(count);
}
}
str.charAt(i)是获取字符串str中下标为i的字符
2.计算某字母或字符串在字符串内出现的次数(思路:前一个字符串的长度减去用后一个字符串替换后的长度再除以后一个字符串的长度)
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine().toLowerCase();
String s = sc.nextLine().toLowerCase();
System.out.print((str.length() - str.replaceAll(s,"").length())/s.length());
}
toLowerCase()是将字符串中的大写字母转换为小写字母,不改变原字符串
toUpperCase()是将字符串中的个小写字母转换为大写字母,不改变原字符串
str.replace(正则表达式/被替换的字符,替换的结果字符)
String 对象的常用方法
int length()
语法:字符串变量名.length();
返回值为Int类型,得到一个字符串的字符的个数(中、英、空格、转义字符皆为字符,计入长度)
String a = "矮点aidian \t\n";
int length = a.length();
System.out.println(length);
//输出结果为:11
//其中转义字符"/t"、"/n"为一个字符
char charAt(值);
语法:字符串名.chaeAt(值);
返回值为char类型。从字符串中取出指定位置的字符
String str = "今天吃饭了吗";
char c = str.charAt(3);
System.out.println("指定字符为:" + c);
//输出结果为:指定字符为:饭
//位置从0开始
char toCharArray()
语法:字符串名.toCharArray();
返回值为char数组类型。将字符串变成一个字符数组
String str = "张三丰";
char c[] = str.toCharArray();
for(int i = 0;i < c.length;i++){
System.out.println(”转为数组输出:" +c[i]);
}
//输出结果为:
//转为数组输出:张
//转为数组输出:三
//转为数组输出:丰
int indexOf("字符")
语法:字符串名.indexOf("字符");字符串名.indexOf("字符",值);
查找指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1
int lastindexOf("字符")
得到指定内容最后一次出现的下标
String str="只为挨你近一点";
int a1 = str.indexOf("你");// 查找字符你的位置
int a2 = str.indexOf("为", 2);// 查找为的位置,从第3个开始查找
int a3 = str.lastIndexOf("点");
System.out.println("你的位置为:" + a1);
System.out.println("为的位置为:" + a2);
System.out.println("点最后出现的位置为:" + a3);
//运行结果:
//你的位置为:3
//为的位置为:-1(因为是从第三个开始查找的,所以没有查到,返回-1)
//点最后出现的位置为:7
toUpperCase(); toLowerCase();
字符串大小写的转换
String str = "Hello World";
System.out.println("将字符串转为大写:" + str.toUpperCasde());
System.out.println("将字符串转为小写:" + str.toLowerCasde());
//运行结果:
//将字符串转为大写:HELLO WORLD
//将字符串转为小写:hello world
String[] split("字符")
根据给定的正则表达式的匹配来拆分此字符串,形成一个新的String数组
String str = "boo:and:foo";
String[] arr1 = str.split(":");
String[] arr2 = str.aplit("o");
//运行结果:
//arr1
//{"boo","and","foo"}
//arr2
//{"b","",":and:f"}
boolean equals(Object anObject)
语法:字符串变量名.equals(字符串变量名);
返回值为布尔类型,比较两个字符串是否相等
String str1 = "hello";
String str2 = "world";
if(str1.equals(str2)){
System.out.println("yes!");
}else{
System.out.println("no!");
}
//输出结果:no!
trim()
去掉字符串左右空格
replace(char oldChar,char newChar)
新字符替换旧字符,也可以达到去空格的效果
String str = " 辰辰呀 ";
System.out.println("去掉后trim()" + str.trim());
System.out.println("去掉后replace()" + str.replace(" ",""));
//运行结果
//去掉后trim()辰辰呀
//去掉后replace()辰辰呀
String substring(int beginIndex,int endIndex)
截取字符串
String str = "123辰辰呀456";
System.out.println("截取后的字符为:" + str.substring(0,3));// 截取0-3个位置的内容 不含3
System.out.println("截取后字符为:" + str.substring(2));// 从第3个位置开始截取 含2 //运行结果:
//截取后的字符为:123
//截取后字符为:3辰辰呀456
Boolean equalsIgnoreCase(String)
忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
String str = "HELLO WORLd";
String str1 = "hello world";
if(str.equalsIgnoreCase(str1)){
System.out.println("两个字符串相等");
}else{
System.out.println("两个字符串不相等");
}
//运行结果:
//两个字符串相等
boolean contains(String)
判断一个字符串里是否包含指定的内容,返回一个布尔值
String str = "HELLO WORLd";
String str1 = "WO";
if(str.contains(str1)){
System.out.println("str内容中存在WO");
}else{
System.out.println("抱歉没找着");
}
//运行结果:
//str内容中存在WO
boolean startsWith(String)
测试此字符串是否以指定的前缀开始,返回一个布尔值
boolean endsWith(String)
测试此字符串是否以指定的后缀结束,返回一个布尔值
String replaceAll(String,String)
将某个内容全部换成指定的内容
String replaceFirst(String,String)
将第一次出现的某个内容替换成指定的内容
原文: https://www.cnblogs.com/aidian/p/8805540.html