Java String类的相关操作

Java String类的相关操作

一.如何遍历字符串

//法一
String str="hello world";
for(int i=0;i<str.length();i++)
{
    char ch=str.charAt(i);//以字符的方式遍历字符串
}

//法二
String str="hello world";
for(char ch :str.toCharArray)
{
    ...
}

二.关于字母的操作

char ch='t';
if(Character.isLetter(ch))//判断是否为字母
{
    if(Character.isUpperCase(ch))//判断是否为大写字母
    {
        //将大写字母转换为小写字母
        //法一:
        ch=Character.toLowerCase(ch);
        //法二:
        //ch=(char)(ch-'A'+'a');//注意此处需要用强制转换类型将int型转换为char类型
    }
    if(Character.isLowerCase(ch))//判断是否为小写字母
    {
        //法一:
        //ch=Character.toUpperCase(ch);
        //法二:
        ch=(char)(ch-'a'+'A');//将小写字母转换为大写字母,注意此处需要用强制转换类型将int型转换为char类型
    }
    
}

if(Character.isWhitespace(ch));//判断是否为空格
if(Character.isDigit(ch));//判断是否为数字型字符

三.字符串的拼接

String str1="hello";
String str2=" world";
String str3=str1+str2;//直接用加法即可将字符串进行拼接

四.字符串与字符的相互转换

字符串转字符

  1. 使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char。
  2. 使用String.toCharArray()(返回值为char[])可以得到将包含整个String的char数组。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。

字符转字符串

//字符转字符串
char ch='t';
char ch1[4]="thing";
String str=String.valueOf(ch);//最为简单

String str=String.valueOf(ch1);//将一个char数组转为String类型
    
String str=Character.toString(ch);//这个方法实际上直接返回String.valueOf(char)

String str=new Character(ch).toString();

String str=""+ch;
// 虽然这个方法很简单,但效率最低,Java中的String Object的值实际上是不可变的,是一个final的变量。
// 所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。
// 而Java对使用+运算符处理String相加进行了方法重载。
// 字符串直接相加连接实际上调用了如下方法:
// new StringBuilder().append("").append('c').toString();

String str=new String(new char[]{ch});//利用Sting类的有参构造函数

五.字符串的逆转

String str1="hello";
String str2=new StringBuffer(str1.reverse().toString());//得到的str2即为str1的逆转后的字符串

六.字符串的替换(有时可以用此方法从字符串里删除一部分字符串)

  1. public String replace(char oldChar, char newChar)//用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串。

  2. public String replaceFirst(String regex, String replacement)//该方法用字符replacement的内容替换当前字符串中遇到的第一个和字符串regex相匹配的子串,应将新的字符串返回。

  3. public String replaceAll(String regex, String replacement)//该方法用字符replacement的内容替换当前字符串中遇到的所有和字符串regex相匹配的子串,应将新的字符串返回。

String str = "asdzxcasd";
String str1 = str.replace('h','t');//换单个的字符,str1="tello tello"
String str2 = str.replace("asd","fgh");//换字符串,str2 = "fghzxcfgh"
String str3 = str.replaceFirst("asd","fgh");//换第一个与方法中第二个参数匹配的部分str3 = "fghzxcasd"
String str4 = str.replaceAll("asd","fgh");//换所有匹配的字符串,str4 = "fghzxcfgh"  
String str5 = str.replace("asd","");//这样即可删除某个字符串中的出现的另一个字符串

七.关于java中命令行参数的处理

java程序的入口为main方法, main方法可以接受一个命令行参数, 它是一个String[]数组,这个命令行参数由JVM接受用户输入并传给main方法:

public class Main
{
    public static void main(String[] args)
    {
        for(String arg: args)//命令行参数的遍历
        {
            System.out.println(arg);//对命令行参数进行相关的操作
        }
    }
}

八.判断一个字符串是否包括另一个字符串

String str1="hello hello";
String str2="hello";
if(str1.contain(str2)){}//表示str1里是否包含str2
//对于这个方法还可用于删除元素时判断是否还有某元素

九.如何统计一个字符串中给定字符串出现的频率

  1. 看其是否包含给定字符串

    1. 如果不包含则直接输出0
    2. 如果包含则利用replace删除包含的部分
  2. 再通过删除部分的长度除以给定字符串的长度,即为该字符串中出现给定字符串的频率

  3. 需要注意的是需要提前备份原字符串以及原字符串的长度

import java.util.*;
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner in=new Scanner(System.in);
        String s9=in.nextLine();
        String s10=in.nextLine();
        String s11=s9;
        int old_length=s9.length();
        String replace="";
        
        if(s9.contains(s10)) 
        {
            replace=s9.replaceAll(s10, "");
            int new_length=replace.length();
            int count=(old_length-new_length)/(s10.length());
            System.out.println(count);
        }
        else System.out.println(0);
        s9=s10;
        in.close();
    }
}

十.如何在字符串中插入字符串

//在字符串中间某个位置插入字符串
String str1="hello";
StringBuilder str2=new StringBuilder(str1);
str2.insert(2,",");//表示在下标为2的前面插入",",即str1="he,llo"
str1=str2.toString();

//在字符串后面插入字符串
String str="hello";
StringBuffer str2=new StringBuffer(str);
str2.append("world");//在后面加上world
String str3=str2.toString();

十一.如何判断字符串相等

String name="xiaoming";
if(name.equals("xiaoming"));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值