String当中与获取相关的常用方法
String当中与获取相关的常用方法有:
public int length():获取字符串中有多少字符个数,拿到字符串长度。
public String concat (String str):将当前字符串和参数字符串拼接成为返回值新的字符串。
public char charAt(int index);获取指定索引位置的单个字符(索引从0开始)
public int indexOf(String str):查找参数字符串再本字符串当中首次出现的索引位置,如果没有返回-1
public class demo02String {
public static void main(String[] args) {
int length="asdfghjkl".length();
System.out.println("length字符串长度是"+length);
String stu1="hello";
String stu2="world";
String stu3=stu1.concat(stu2);
System.out.println(stu1);
System.out.println(stu2);
System.out.println(stu3);
String stu4="asdfghjkl";
char cha=stu4.charAt(4);
System.out.println("第四好字符是"+cha);
System.out.println("=============");
int index=stu1.indexOf("llo");
System.out.println("llo的索引位置是在"+index);
int index2=stu1.indexOf("qq");//如果字符串中没有显示为-1
System.out.println("qq索引的位置是在"+index2);
}
}
字符串的截取方法:
public String subString (int index);截取从参数位置到字符串末尾返回新的字符串。
public String substring(int begin,int end):截取从begin开始一直到end结束中间的字符串。
备注:[begin,end),包括左边不包括右边。
public class demo02subString {
public static void main(String[] args) {
String str1="helloworld";
String str2=str1.substring(5);
System.out.println(str2);
System.out.println("============");
String str3=str1.substring(4,7);
System.out.println(str3);
System.out.println("===========");
//下面这种写法字符串没有改变改变的是地址
String str4="hello";
System.out.println("str4");
str4="world";
System.out.println(str4);
}
}
String当中与转换相关的常用方法有
publiv char[] toCharArray():将当前字符串拆分成为字符数组作为返回值。
public byte[] getByte():获得当前字符串底层的字节数组。
publicString replance(CharSequence oldString,CharSquence newString):
将所有出现的老字符串替换成新的字符串,返回替换之后的结果为新字符串。
备注:CharSequence意思事说可以接受字符串类型
```java````
public class demo04Stringconvert {
public static void main(String[] args) {
String str = “hello”;
char[] cha = str.toCharArray();//将字符串转化成数组
System.out.println(cha[3]);
System.out.println(cha.length);//数组长度不需要length后面不需要加[]
System.out.println("===========");
byte[] by = str.getBytes();//将字符串转化成字节数组
for (int i = 0; i < by.length; i++) {
System.out.println(by[i]);
}
System.out.println("===============");
String stu1="how do you do";
String stu2=stu1.replace("o","*");//将字符串内容替换
System.out.println(stu2);
System.out.println("=================");
String stu3="会不会玩呀,你大爷的!!!!你大爷的!!你大爷的!";
String stu4=stu3.replace("你大爷的","****");
System.out.println(stu4);
}
}
``
分割字符串的方法:
publicString[] split(String regex);按照参数的规则,将字符串切分成为若干份。
注意事项:split方法的参数其实是一个”正则表达式“
如果要按照英文句点”.“进行切分必须写\.(两个反斜杠)
public class demo05StringSplit {
public static void main(String[] args) {
String stu="aaa,bbb,ccc";
String[] stu1=stu.split(",");//规则不一定用逗号,还可以用其他比如空格等
for (int i = 0; i < stu1.length; i++) {
System.out.println(stu1[i]);
}
System.out.println("==========");
String stu2="aaa bbb ccc";
String[] stu3=stu2.split(" ");
for (int i = 0; i < stu3.length; i++) {
System.out.println(stu3[i]);
}
String stu5="XXX.YYYY.ZZZZ";//英文句点切不出来
System.out.println(stu5.length());//得出长度为0,想要切成功必须写\\.才行
String[] stu6=stu5.split(".");
for (int i = 0; i < stu6.length; i++) {
System.out.println(stu6[i]);
}
}
}
练习题目:
定义一个方法吧数组{1,2,3}按照指定格式拼接成一个字符串,参照格式如下[word1#word2#word3]
分析:1.首先准备一个int[]数组,内容是1,2,3
2.定义一个方法,用来将数组变成字符串
三要素
返回值类型:String
方法名称fromArrayToString
参数,列表:int[]
3.格式:[word1#word2#word3]
用到:for循环,字符串拼接,每个数组元素之间都有word字样,分隔使用的是#,区分是不是最后一个
4.调用方法,得到返回值,并且打印结果
public class emo06StringPractice {
public static void main(String[] args) {
int[] array={1,2,3};
String reslut=formArrayToString(array);
System.out.println(reslut);
}
public static String formArrayToString(int[] array){
String str="[";
for (int i = 0; i < array.length; i++) {
if(i==array.length-1){
str+="word"+array[i]+"]";
}else{
str+="word"+array[i]+"#";
}
}
return str;
}
}
题目:键盘输入一个字符串并且统计其中各种字符出现的次数。
种类有:大写字母,小写字母,数字,其他
思路:1.既然用到键盘输入那么我们肯定用Scanner
2.键盘输入的字符串,那么肯定用String str=sc.next();接收
3.定义四个变量,分别代表四种字符各自的出现次数。
4.需要对字符串一个字一个字的检查,String–》char[],方法就是toCharArray()
5.遍历char[]字符数组,对当前字符的种类进行判断,并且用四个变量进行++动作。
6.打印输出四个变量,分别代表四种字符出现的次数。
import java.util.Scanner;
public class demo07Stringpractice {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
System.out.println("请输入字符串");
char[] Array=str.toCharArray();
int conutUpper=0;
int conutLower=0;
int conutNumber=0;
int conutOther=0;
char[] ch=str.toCharArray();
for(int i=0;i <ch.length;i++){
char ch1=ch[i];
if ('a'<=ch1&&ch1<'z'){
conutLower++;
}else if('A'<=ch1&&ch1<'Z'){
conutUpper++;
}else if('0'<=ch1&&ch1<='9'){
conutNumber++;
}else{
conutOther++;
}
}
System.out.println("大写字母有"+conutUpper+"个");
System.out.println("小写字母有"+conutLower+"个");
System.out.println("数字有"+conutNumber+"个");
System.out.println("其他符号有" + conutOther + "个");
}
}
静态代码块
静态代码块的格式是:
publicclass类名称{
static{
代码块的内容
}
}
特点:当第一次用到本类是,静态代码块执行唯一一次(唯一一次是当首次访问本类时开始执行,当第二次访问时不在执行)
构造方法只要创建对象时就会开始执行,但是静态内容总是优先于非静态,所以静态代码块比构造方法先执行。
静态代码块用途:一次性的对静态成员变量赋值
public class person {
static{
System.out.println("静态代码块执行");
}
public person() {
System.out.println("构造方法执行");
}
}
public class demo04static {
public static void main(String[] args) {
person one=new person();//静态代码块执行 构造方法执行
System.out.println("=================");
person two=new person();
person three=new person();//静态代码块执行 构造方法执行 构造方法执行
}
}