String类:

String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。String类对象创建后不能修改,StringBuffer & StringBuilder 类。这时我们会问,给String变量赋值不就是改变了吗?其实不是的,赋值后将会生成新的对像来存放新的内容,原先的对象依旧在内存中,但是s不在指向它,此时这个对象就会成为垃圾内存,在某一个特定的时刻有Java虚拟机回收。

String字符串变量的创建:

声明:     String 变量名;

 String str;

声明并初始化:  String 变量名="初始值";

String str = "挨点博客";

String常用方法:

1、int length();  语法:字符串变量名.length();  返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)

        String a="挨点aidian \t\n";
int l = a.length();
System.out.println(l); 运行结果:11

2、char charAt(值);  语法 :字符串名.charAt(值);  返回值为 char 类型。从字符串中取出指定位置的字符

     String str="张三疯";
char c = str.charAt(2);
System.out.println("指定字符为:" + c); 运行结果:指定字符为:疯

3、char  toCharArray();  语法 :字符串名.toCharArray();  返回值为 char 数组类型。将字符串变成一个字符数组

String str="张三疯";

char c[] = str.toCharArray(); 

for (int i = 0; i < c.length; i++)

System.out.println("转为数组输出:" + c[i]);

      运行结果:

转为数组输出:张
转为数组输出:三
转为数组输出:疯

4、int indexOf("字符")  语法 :字符串名.indexOf("字符");字符串名.indexOf("字符",值);查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。

in 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 点最后出现的位置为:7

5、toUpperCase();  toLowerCase();字符串大小写的转换

String str="hello world";
System.out.println("将字符串转大写为:" + str.toUpperCase());
System.out.println("将字符串转换成小写为:" + str.toUpperCase().toLowerCase()); 运算结果:
将字符串转大写为:HELLO WORLD
将字符串转换成小写为:hello world

6、String[] split("字符")  根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。

String str = "boo:and:foo";
String[] arr1 = str.split(":");
String[] arr2 = str.split("o");
运行结果:
  arr1  //{ "boo", "and", "foo" }
  arr2  //{ "b", "", ":and:f" }

7、boolean equals(Object anObject)  语法 :字符串变量名.wquals(字符串变量名);  返回值为布尔类型。所以这里用 if 演示。比较两个字符串是否相等,返回布尔值

               String str = "hello";
String str1="world";
if(str.equals(str1))
{
System.out.println("这俩字符串值相等");
}
else
{
System.out.println("这俩字符串值不相等");
}
      运行结果:
          这俩字符串值不相等

8、trim();  去掉字符串左右空格  replace(char oldChar,char newChar);新字符替换旧字符,也可以达到去空格的效果一种。

String str = "       挨点博客         ";
System.out.println("去掉左右空格后:" + str.trim()); 运行结果:
  去掉左右空格后:挨点博客 第二种:
String str = " 挨点博客 ";
System.out.println("去掉左右空格后:" + str.replace(" ","")); 运行结果:
  去掉左右空格后:挨点博客

9、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

10、boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值

     String str = "HELLO WORLd";
String str1 = "hello world";
if(str.equalsIgnoreCase(str1))
{
System.out.println("两个字符串相等");
}
else
{
System.out.println("两个字符串不相等");
} 运行结果:
    两个字符串相等

11、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

12、boolean startsWith(String)  测试此字符串是否以指定的前缀开始。返回一个布尔值


     String str = "HELLO WORLd";
String str1 = "HE";
if(str.startsWith(str1))
{
System.out.println("str内容中存在HE前缀开头");
}
else
{
System.out.println("抱歉没找着");
}
运行结果:
  str内容中存在HE前缀开头

13、boolean endsWith(String)  测试此字符串是否以指定的后缀结束。返回一个布尔值

        String str = "挨点博客";
String str1 = "博客";
if(str.endsWith(str1))
{
System.out.println("str内容中存在\'博客\'后缀结束");
}
else
{
System.out.println("抱歉没找着");
}
运行结果:
  str内容中存在'博客'后缀结束

14、上面提到了replace方法,接下继续补充一下  String replaceAll(String,String) 将某个内容全部替换成指定内容,   String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容

String str = ",,,,,,挨点博客,,,,, ";
System.out.println("改变后:" + str.replaceAll(",","a")); 运行结果:改变后:a,,,,,挨点博客,,,,,  String str = ",,,,,,挨点博客,帅吗,帅吗,,,,, ";
System.out.println("改变后:" + str.replaceFirst("帅吗","很帅哦")); 运行结果:改变后:,,,,,,挨点博客,很帅哦,帅吗,,,,,

巩固的时候查阅了很多资料。如何有错误的、或者有补充的请在评论区评论、我再改正与补充。

java 中String类的常用方法总结,玩转String类的更多相关文章

  1. Java中创建操作文件和文件夹的工具类

    Java中创建操作文件和文件夹的工具类 FileUtils.java import java.io.BufferedInputStream; import java.io.BufferedOutput ...

  2. Java中带包(创建及引用)的类的编译

    Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...

  3. Java基础(30):String对象的常用方法与实例(String类)

    Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...

  4. Java中的io流学习(了解四大基类和基本步骤)

    Java中io流四大基类及io流操作四大基本步骤 io流:(input/output)即输入输出流.面向对象的思想之一是面向接口编程,面向父类编程,也就是多态.所以学好基类(父类)很重要. 分类 按处 ...

  5. Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释

    上一篇说的是一个简单的应用,说明JNI是怎么工作的,这一篇主要来说一下,那个本地方法sayHello的参数的说明,以及其中方法的使用 首先来看一下C++中的sayHello方法的实现: JNIEXPO ...

  6. java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

    一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http: ...

  7. JAVA中Collection接口和Map接口的主要实现类

    Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素 ...

  8. 2017.12.13 Java中是怎样通过类名,创建一个这个类的数组

    先在类方法中定义数组的方法: public int[] method6(int[] arr){ for(int i = 0; i<arr.length;i++){ arr[i] = (int)( ...

  9. Java中lang包的常用方法介绍

    JAVA API(图片来源:实验楼) 包装类 Integer包装类 方法 返回值 功能描述 byteValue() byte 以 byte 类型返回该 Integer 的值 intValue() in ...

  10. Java中常用的加密方式(附多个工具类)

    一.Java常用加密方式 Base64加密算法(编码方式) MD5加密(消息摘要算法,验证信息完整性) 对称加密算法 非对称加密算法 数字签名算法 数字证书 二.分类按加密算法是否需要key被分为两类 ...

随机推荐

  1. 使用批处理发布 QT 的程序

    1. 将 QT Creator 生成的 exe 文件拷贝到一个目录中 :C:\Users\zyy\Desktop\qtrelease 2.新建 bat 文件:qt.bat . 编辑文件,注意替换 QT ...

  2. Sql Server Management Studio 18 打开闪退问题

    解决方案 找到MSSMS安装位置,例如我是安装到了D:\Program Files (x86)\Microsoft SQL Server Management Studio 18 将D:\Progra ...

  3. java 多线程 线程安全及非线程安全的集合对象

    一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用.防止出现数据不一致或 ...

  4. 【记录】mysql中建表utf8和utf8mb4区别?timestamp和datetime区别?

    mysql中建表utf8和utf8mb4区别? 1:utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面 2:要在 Mysql 中 ...

  5. 三步完成Source Insight 4.0 破解安装(转)

    转自:https://blog.csdn.net/biubiuibiu/article/details/78044232 三步完成Source Insight 4.0 破解安装   下载地址有更新,之 ...

  6. Mac利用分屏spliter

    有时候一台电脑学习很鸡肋,特别是在照葫芦画瓢阶段,只能来回的切换页面,效率极其低下,一直希望可以将其分别显示,互不干扰.今天在mac发现此方法,大大提高了学习效率,所以今天分享给大家: 方法一:长按窗 ...

  7. 揭秘阿里云WAF背后神秘的AI智能防御体系

    背景 应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入.跨站等攻击仍然占据着较前的位置.WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在,也正是这些针对W ...

  8. nodejs搭建服务器 和 操作数据库

    1.express框架:是一个简洁而灵活的 node.js Web应用框架.一般的项目都是基于这个框架开发的.http://www.runoob.com/nodejs/nodejs-express-f ...

  9. [MySQL] innobackupex在线备份及恢复(全量和增量)

    安装percona-xtrabackup 方法1: percona-xtrabackup-2.1.9-744-Linux-x86_64.tar.gz(D:\share\src\linux-mysql) ...

  10. 在angular项目中使用bootstrap的tooltip插件时,报错Property 'tooltip' does no t exist on type 'JQuery<HTMLElement>的解决方法和过程

    在angular4的项目中需要使用bootstrap的tooltip插件. 1. 使用命令安装jQuery和bootstrap npm install bootstrap jquery --save ...