目录
将一个字符串的首字母转换成大写,其余都为小写(只考虑大小写英文字符)
String类的获取功能
package String.pack04;
/*
String类的获取功能
int length();获取字符串的长度
char charAt(int index):获取指定索引位置的字符
int indexOf(int char):返回指定字符在该字符串中第一次出现的索引
为什么这里是int类型,而不是Char类型
原因是 'a'和97都可以表示'a'
int indexOf(String str):返回指定字符串在该字符传中第一次出现的索引
int indexOf(int ch,int fromIndex):返回指定字符在指定位置后第一次出现的索引
int indexOf(String str,int fromIndex):返回指定字符串在指定位置后第一次出现的索引
String substring(int start):从指定位置截取字符串,默认到末尾
String substring(int start,int end):从指定位置开始到指定位置结束截取字符串
*/
public class StringDemo {
public static void main(String[] args) {
String s = "helloworld";
System.out.println(s.charAt(5));
System.out.println(s.indexOf("l"));
System.out.println(s.indexOf("hel"));
System.out.println(s.indexOf("llo"));
System.out.println(s.indexOf("o",5));
System.out.println(s.indexOf("ll",5));
System.out.println(s.substring(5));
System.out.println(s.substring(2,6));//包左不包右,即包括start索引但不包括end索引。
System.out.println(s.substring(0,s.length()));//0到9
}
}
遍历获取字符串的每一个字符
/*
需求:遍历获取字符串的每一个字符
方法一:
可以使用String中的charAt()方法,就可以获取指定位置的任意字符。
如charAt(0)获取第一个字符,charAt(1)获取第二个字符。。。然后用for循环遍历
方法二:
也可以用String中的substring()方法,截取对应位置的字符串,每次截取一个字符
如substring(0,1)截取第一个,substring(1,2)截取第二个字符。。。同样使用for循环遍历
*/
public class StringTest {
public static void main(String[] args)
{
String str = "helloworld";
for (int i = 0; i < str.length(); i++) {
System.out.println(str.substring(i,i+1));
}
System.out.println("--------------");
for (int i = 0; i <str.length(); i++) {
System.out.println(str.charAt(i));
}
}
}
统计大小写以及数字在字符串中出现的次数
package String.pack04;
/*
需求:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他)
举例:"Hello123World"
大写:2个
小写:8个
数字:3个
分析:
ASCII码表:
0 48
A 65
a 97
if(ch>='0'&&ch<=9) 数字
if(ch>'a'&&ch<='z') 小写字母
if(ch>='A'&&ch<='Z') 大写字母
*/
public class StringTest02 {
public static void main(String[] args) {
String s = "Hello123World";
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if(ch>='0' && ch<='9')
numberCount++;
else if(ch>='a' && ch<='z')
smallCount++;
else
bigCount++;
}
System.out.println("大写字母:"+bigCount+" 小写字母:"+smallCount+"" +
" 数字:"+numberCount);
}
}
大串中找小串
package String.pack04;
import java.util.Scanner;
/*
大串中找小串方法改进,并要求用键盘录入
*/
public class StringTest04 {
public static void main(String[] args) {
// search();
search2();
}
//我自己写的方法,虽然效果相同,但是好像不太好。无法自己改进。
public static void search()
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的字符串:");
String s = sc.nextLine();
System.out.println("请输入您要寻找的字符串:");
String s1 = sc.nextLine();
int count = 0;
int index = -s1.length();
while(index < s.length())
{
index = s.indexOf(s1,index+s1.length());
if(index>0)
{
// System.out.println(index);
count++;
}
else
break;
}
System.out.println(s1+"一共出现了"+count+"次");
}
public static void search2()
{
/*
用字符串截取的方式做
先做一次index的统计操作,如果index不等于-1,那么就进入while循环,
循环里面因为index不等于-1,所以就意味着第一次查找的成功。直接第一条语句就count++;
然后更新index和大串的值。
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的字符串:");
String s = sc.nextLine();
System.out.println("请输入您要寻找的字符串:");
String s1 = sc.nextLine();
int count = 0;
// int index = s.indexOf(s1);
/*while(index !=-1)
{
count++;
s = s.substring(s1.length()+index);
index = s.indexOf(s1);
}*/
//合并代码
int index;
while((index=s.indexOf(s1))!=-1)
{
count++;
s = s.substring(s1.length()+index);
}
System.out.println(count);
}
}
String类的转换功能
package String.pack05;
/*
String 的转换功能:
byte[] getBytes():将字符串转换为字节数组
char toCharArray():将字符串转换为字符数组
static String valueOf(char[] chs):将字符数组转换为字符串
注意:valueOf方法可以将任意类型的数据转换为字符串
String toLowerCase():将字符串转换为小写
String toUpperCase():将字符串转换为答谢
String concat(String str):拼接字符串
*/
public class StringDemo {
public static void main(String[] args) {
String s = "JAVASE";
byte[] bys = s.getBytes();//转换为字节数组之后还需要用for循环来遍历,单独输出bys是一个地址。
for (int i = 0; i < s.length(); i++) {
System.out.println(bys[i]);
}
System.out.println(s.toCharArray());
int num = 100;
String ss = String.valueOf(num);
System.out.println(ss);
ss = "jjun";
System.out.println(ss);
char[] ch = s.toCharArray();
System.out.println(ch);
String sss = s.toLowerCase();
System.out.println(sss);
String sss2 = "ajun";
System.out.println(sss2.toUpperCase());
String s1 = "hello";
String s2 = "world";
System.out.println(s1.concat(s2));
String s3 = s1+s2;
System.out.println(s3);
System.out.println(s);
}
}
将一个字符串的首字母转换成大写,其余都为小写(只考虑大小写英文字符)
package String.pack05;
/*
需求:将一个字符串的首字母转换成大写,其余都为小写(只考虑大小写英文字符)
分析:
A.获取字符串的第一个字符,并将其转换为大写
B.获取字符串除了第一个字符以外的剩余字符,并将其转换成小写
C.拼接 A 和 B
*/
public class StringTest {
public static void main(String[] args) {
String s = "hElLOworLD";
String ss = s.substring(0,1);
String sss = s.substring(1,s.length());
String s2 = ss.toUpperCase()+sss.toLowerCase();
System.out.println(s2);
String s4 = s.substring(0,1).toUpperCase()+s.substring(1).toLowerCase();
System.out.println(s4);
}
}
字符串练习
把数组中的数据按照指定格式拼接成一个字符串
package String.pack06;
/*
需求:
把数组中的数据按照指定格式拼接成一个字符串
举例:
int[] arr = {1,2,3};
输出结果:
[1,2,3]
分析:
最后要的结果是字符串类型,所以要先定义一个空的字符串对象来接收
然后将字符串和"["拼接
然后遍历int数组,得到每个元素
判断钙元素是否为该数组的最后一个元素
是:直接拼接元素和"]"
不是:拼接元素,逗号和空格
输出拼接后的字符串
*/
public class StringDemo {
public static void main(String[] args) {
int [] arr = {1,2,3};
/*
String s = "[";
for (int i = 0; i < arr.length; i++) {
if(i == arr.length-1)
s += arr[i]+"]";
else
s = s+arr[i]+","+" ";
}
System.out.println(s);
*/
print(arr);
}
//把代码用功能实现
public static void print(int[] arr)
{
String s = "[";
for (int i = 0; i < arr.length; i++) {
if(i == arr.length-1)
s += arr[i]+"]";
else
s = s+arr[i]+","+" ";
}
System.out.println(s);
}
}
字符串反转
package String.pack06;
import java.util.Scanner;
/*
字符串反转
举例:键盘录入"abc"
输出结果:"cba"
分析:
键盘录入
将录入的字符串转换为字符数组类型
char toCharArray():将字符串转换为字符数组
将字符数组逆序并拼接成新的字符串
最后输出
*/
public class StringDemo02 {
public static void main(String[] args) {
reverseString();
}
public static void reverseString()
{
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char[] chars = s.toCharArray();
String result = "";
for (int i = chars.length-1;i >= 0;i--) {
result += chars[i];
}
System.out.println(result);
}
}
在一个字符串中统计指定字符串在其中出现的次数
package String.pack06;
/*
统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”
中java出现了5次
我的分析:
先从整个字符串中返回第一次出现的索引
有则count+1
没有则返回
然后将最原始的字符串截取一部分,从第一次java索引的位置到最后
(或者直接从第一次索引的位置到最后 再一次统计java出现的次数)
int indexOf(String str,int fromIndex):返回指定字符串在指定位置后第一次出现的索引
*/
public class StringTest03 {
public static void main(String[] args) {
String s = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
int count = 0;
/*int index = s.indexOf("java",0);
System.out.println(index);
count++;
index = s.indexOf("java",index+4);
System.out.println(index);
*/
//循环改进:
String s1 = "java";
int index = -s1.length();
while(index < s.length())
{
//index = s.indexOf("java",index+4);
//这里的fromIndex 可以不用写4,因为写4就固定了了,不方便下次获取其他的字符串。
index = s.indexOf(s1,index+s1.length());
//System.out.println(index);
if(index>0)
{
// System.out.println(index);
count++;
}
else
break;
}
System.out.println(s1+"一共出现了"+count+"次");
}
}