iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java基础之string类的示例分析
  • 727
分享到

java基础之string类的示例分析

2023-06-20 20:06:03 727人浏览 独家记忆
摘要

这篇文章主要为大家展示了“Java基础之string类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java基础之string类的示例分析”这篇文章吧。1、String类1.1两种对象

这篇文章主要为大家展示了“Java基础之string类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java基础之string类的示例分析”这篇文章吧。

    1、String类

    1.1两种对象实例化方式

    对于String在之前已经学习过了基本使用,就是表示字符串,那么当时使用的形式采取了直接赋值:

    public class StringText{public static void main(String args[]){String str =new String( "Hello");     //构造方法System.out.print(str);}}

    对于String而言肯定是一个类,那么程序之中出现的str应该就是这个类的对象,那么就证明以上的赋值操作实际上就表示要为String类的对象进行实例化操作。

    但String毕竟是一个类,那么类之中一定会存在构造方法,String类的构造:

    public class StringText{public static void main(String args[]){String str =new String( "Hello");     //构造方法System.out.print(str);}}

    发现现在也可以通过构造方法为String类对象实例化。

    1.2字符串比较

    如果现在有两个int型变量,如果想要知道是否相等,使用“==”进行验证。

    public class StringText{public static void main(String args[]){int x = 10;int y = 10;System.out.print(x==y);}}

    换成String

    public class StringText{public static void main(String args[]){String str1 = "Hello";String str2 = new String("Hello");String str3 = str2;     //引用传递System.out.print(str1== str2);          //falseSystem.out.print(str1== str3);          //falseSystem.out.print(str2== str3);          //ture}       }

    java基础之string类的示例分析

    现在使用了“==”的确是完成了相等的判断,但是最终判断的是两个对象(现在的对象是字符串)判断是否相等,属于数值判断------判断的是两个对象的内存地址数值,并没有判断内容,而想要完成字符串内容的判断,则就必须使用到String类的操作方法:public Boolean equals(String str)(将方法暂时变了)

    public class StringText{public static void main(String args[]){String str1 = "Hello";String str2 = new String("Hello");String str3 = str2;     //引用传递System.out.print(str1.equals(str2));          //tureSystem.out.print(str2.equals(str3));          //tureSystem.out.print(str2.equals(str3));          //ture}       }

    1.3字符串常量是String的匿名对象

    如果在程序之中定义了字符串(使用“””),那么这个就表示一个String对象,因为在各个语言之中没有关于字符串数据类型的定义,而Java将其简单的处理了,所以感觉上存在了字符串数据类型。

    **范例:**验证字符串是对象的概念

    public class NiMing{public static void main(String args[]){String str = "Hello";System.out.print("Hello".equals(str));     //通过字符串调用方法}       }

    匿名对象可以调用类之中的方法与属性,以上的字符串可以调用了equals()方法,那么它一定是一个对象。

    **小技巧:**关于字符串与字符串常量的判断

    例如:在实际工作之中会有这样一种操作,要求用户输入一个内容,之后判断此内容是否与指定内容相同。

    public class NiMing{public static void main(String args[]){String str = "Hello";        if(str.equals("Hello")){    System.out.print("条件满足");}   }       }

    但,既然数据是用户自己输入,那么就有可能没有输入内容。

    public class TestDemo1{public static void main(String args[]){String str = null;        if(str.equals("Hello")){    System.out.print("条件满足");}   }       }//报错    Exception in thread "main" java.lang.NullPointerException        at NiMing.main(TestDemo1.java:4)//现在将代码反过来操作:        public class TestDemo1{public static void main(String args[]){String str = null;        if("Hello".equals(str)){    System.out.print("条件满足");}   }       }

    因为字符串常量是匿名对象,匿名对象不可能为null。

    1.4String两种实例化方式区别

    1、分析直接赋值方式
    String str = "Hello";     //定义字符串

    java基础之string类的示例分析

    发现现在只开辟额一块堆内存空间和一块栈内存空间。

    2、构造方法赋值
    String  str = new String("Hello");

    java基础之string类的示例分析

    使用构造方法赋值的方式开辟的字符串对象,实际上会开辟两块空间,其中有一块空间就爱那个成为垃圾。

    public class TestDemo2{public static void main(String args[]){String str1 = new String("Hello");String str2 = "Hello";   //入池String str3 = "Hello";  //使用池中对象System.out.print(str1==str2);          //falseSystem.out.print(str2==str3);          // ture System.out.print(str1==str3);          // false}       }

    通过上面的程序可以发现,使用构造方法实例化String对象,不会入池,只能自己使用。可是在String类之中为了方便操作提供了一种称为手工入池的方法:public String intern()。

    public class TestDemo2{public static void main(String args[]){String str1 = new String("Hello").intern();    //手工入池String str2 = "Hello";   //入池String str3 = "Hello";  //使用池中对象    System.out.print(str1==str2);          //ture      System.out.print(str2==str3);          //tureSystem.out.print(str1==str3);          //ture}       }

    1.5字符串常量不可改变

    字符串类的操作特点决定:字符串不可能去修改里面的内容。

    public class TestDemo3{public static void main(String args[]){String str = "Hello";str += "World";str += "!!!";System.out.print(str);}}

    java基础之string类的示例分析

    通过以上的代码可以发现,字符串内容的更改,实际上改变的是字符串对象的引用过程,那么一下的代码应该尽量避免:

    public class TestDemo3{public static void main(String args[]){String str = "Hello";for(int x=0;x<1000;x++){str += x;}System.out.print(str);}       }
    • 字符串赋值只用直接赋值模式进行完成

    • 字符串的比较采用equals()方法进行实现字

    • 符串没有特殊的情况不要改变太多

    1.6开发中String必用

    任何一个类的文档由如下几个部分组成

    • 类的相关定义,包括这个类的名字,有哪些父类,有哪些接口。

    • 类的相关简介。包括基本使用

    • 成员摘要(field):属性就是一种成员,会列出所有成员的信息项

    • 构造方法说明(Constructor),列出所有构造方法的信息

    • 方法信息(Method),所有类中定义好的可以使用的方法

    • 成员、构造、方法的详细信息

    1.7字符串和字符数组

    字符串就是一个字符数组,所有在String类中有字符串转变为字符数组,字符数组转换为字符串的方法。

    方法名称类型描述
    public String(char[] value)构造将字符数组中的所有内容变为字符串
    public String(char[] value, int offset, int count)构造将字符数组中的所有内容变为字符串 offset-开始 count-个数
    public char charAt(int index)普通返回char指定字符的索引
    public char[] toCharArray()普通将字符串转化为字符数组
    charAt方法
    public class TestDemo4{public static void main(String args[]){String str = "Hello";System.out.println(str.charAt(0));//如果现在超过了字符串的长度,则会产生异常StringIndexOutOfBoundsExceptionSystem.out.println(str.charAt(10));}}

    字符串和字符数组的转化是重点

    //字符串转化为字符数组public class TestDemo4{public static void main(String args[]){String str = "helloworld";char data [] = str.toCharArray();for(int i = 0; i < data.length; i++){data[i] -= 32;//转大写字母简化模式更简单System.out.print(data[i] + "、");}}}
    //字符数组转化为字符串public class TestDemo4{public static void main(String args[]){String str = "helloworld";char data [] = str.toCharArray();for(int i = 0; i < data.length; i++){data[i] -= 32;//转大写字母简化模式更简单System.out.print(data[i] + "、");}System.out.println();System.out.println(new String(data));//字符串数组全部转化为字符数组System.out.println(new String(data,1,4));//字符串数组部分转化为字符数组}}

    java基础之string类的示例分析

    判断字符串是否由数字组成

    public class TestDemo5{public static void main(String args[]){String str1 = "helloworld";String str = "1234567890";Judgenum(str);Judgenum(str1);}public static void Judgenum(String str){char data [] = str.toCharArray();boolean judge = true;for(int i = 0; i < data.length; i++){if(data[i]>= '0' && data[i]<= '9'){judge = false;}}if(judge){System.out.println(str+"是由字母组成");}elseSystem.out.println(str+"是由数字组成");}}

    java基础之string类的示例分析

    1.8字节和字符串

    方法名称类型描述
    public String(byte[] bytes)构造将部分字节数组变为字符串
    public String(byte[] bytes, int offset,int length)构造将部分字节数组变为字符串 bytes——要解码为字符的字节 offset——要解码的第一个字节的索引 length——要解码的字节数
    public byte[] getBytes()普通将字符串变为字节数组
    public byte[] getBytes(String charsetName) throws UnsupportedEncodingException普通编码转换编码
    //将字符串通过字节流转化为大写public class TestDemo6{public static void main(String args[]){String str = "helloworld";byte data [] = str.getBytes();//字符串转换为字节数组for(int i = 0; i < data.length ; i++){System.out.print(data[i]+"、");data[i] -= 32;}System.out.println(new String(data));//字节数组转化为字符串}}

    java基础之string类的示例分析

    一般情况下,在程序之中如果想要操作字节数组只有两种情况:

    **1、**需要进行编码的转化;

    数据要进行传输的时候。

    **3、**二进制文件适合字节处理

    1.9字符串比较

    方法名称类型描述
    public boolean equals(String anObject)普通区分大小写比较
    public boolean equalsIgnoreCase(String anotherString)普通不区分大小写比较
    public int compareTo(String anotherString)普通比较两个字符串的大小关系

    如果现在要比较两个字符串的大小关系,那么就必须使用comepareTo()方法完成,而这个方法返回int型数据,而这个int型数据有三种结果:大于(返回结果大于0)、小于(返回结果小于0)、等于(返回结果为0).

    public class CompareTo{public static void main(String args[]){String str1 = "HELLO";String str2= "hello";System.out.println(str1.compareTo(str2));}}

    1.10字符串查找

    方法名称类型描述
    public boolean contains(String s)普通判断一个子字符串是否村存在
    public int indexOf(String str)普通返回字符串中第一次出现字符串的索引
    public int indexOf(String str, int fromIndex)普通从指定地方开始查找子字符串的位置
    public int lastIndexOf(String str)普通从后向前查找子字符串的位置
    public int lastIndexOf(String str, int fromIndex)普通从指定位置由后向前查找
    public boolean startsWith(String prefix)普通从头判断是否以某字符串开头
    public boolean startsWith(String prefix,int toffset)普通从指定位置判断是否以字符串开头
    public boolean endsWith(String suffix)普通判断以某字符串结尾
    public class TestDemo7{public static void main(String args[]){String str = "helloworld";System.out.println(str.contains("world"));//true//使用indexOf()进行查找System.out.println(str.indexOf("world"));System.out.println(str.indexOf("java"));//jdk1,5之前这样使用if(str.indexOf() != -1){System.out.println("可以查找到指定的内容");}}}
    • 基本上所有的查找现在都是通过contains()方法完成。

    • 需要注意的是,如果内容重复indexOf()它只能返回查找的第一个位置。

    • 在进行查找的时候往往会判断开头或结尾。

    public class TestDemo7{public static void main(String args[]){String str = "**@@helloworld##";System.out.println(str.startsWith("**"));//trueSystem.out.println(str.startsWith("@@",2));//trueSystem.out.println(str.endsWith("##"));//true}}

    1.11字符串的替换

    方法名称类型描述
    public String replaceAll(String regex,String replacement)普通替换所有的内容
    public String replaceFirst(String regex,String replacement)普通替换首内容
    public class TestDemo7{public static void main(String args[]){String str = "**@@helloworld##";System.out.println(str.replaceAll("l","_"));/}}

    给定一个email地址,要求验证其是否正确,提示:可以简单的验证一下,重点验证“@”和“.”。标准如下:

    email长度不短于5

    @和.不能做开头或结尾

    @和.顺序要有定义

    public class Exam2{public static void main(String args[]){String email = "1016942589.@qqcom";char date[] = email.toCharArray();if (date.length>5&&email.startsWith("@")==false && email.startsWith(".")==false && email.endsWith("@")==false&&email.endsWith(".")==false && email.indexOf(".") >email.indexOf("@")){System.out.println("正确");}else{System.out.println("错误");}}}

    以上是“java基础之string类的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: java基础之string类的示例分析

    本文链接: https://www.lsjlt.com/news/300123.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • java基础之string类的示例分析
      这篇文章主要为大家展示了“java基础之string类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java基础之string类的示例分析”这篇文章吧。1、String类1.1两种对象...
      99+
      2023-06-20
    • Java基础之包装类的示例分析
      这篇文章将为大家详细讲解有关Java基础之包装类的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点...
      99+
      2023-06-15
    • java基础之内部类的示例分析
      这篇文章主要为大家展示了“java基础之内部类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java基础之内部类的示例分析”这篇文章吧。1、匿名内部类内部类:在一个类的内部定义了另外的...
      99+
      2023-06-20
    • Java基础之Maven的示例分析
      这篇文章将为大家详细讲解有关Java基础之Maven的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Maven是什么?Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的...
      99+
      2023-06-15
    • java基础之this的示例分析
      小编给大家分享一下java基础之this的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、this关键字首先需要提醒的是,在整个Java之中,this是...
      99+
      2023-06-20
    • Javascript基础之类型的示例分析
      这篇文章主要介绍了Javascript基础之类型的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基本类型  Javascript有5...
      99+
      2022-10-19
    • Java基础之颜色工具类的示例分析
      这篇文章主要介绍Java基础之颜色工具类的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了Web MVC设计...
      99+
      2023-06-14
    • java基础之多态的示例分析
      小编给大家分享一下java基础之多态的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、多态性多态性是面向对象的最后一个特征,它本身主要分为两个方面: 方...
      99+
      2023-06-20
    • java基础之方法的示例分析
      这篇文章将为大家详细讲解有关java基础之方法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JAVA 异常分类及处理 异常分类Throwable 是 Java 语言中所有错误或异常的超类。下一层...
      99+
      2023-06-20
    • Java基础之线程锁的示例分析
      这篇文章将为大家详细讲解有关Java基础之线程锁的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、 synchronized关键字对象锁a.当使用对象锁的时候,注意要是相同的对象,并且当有线程正...
      99+
      2023-06-20
    • Java基础之MapReduce框架的示例分析
      小编给大家分享一下Java基础之MapReduce框架的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、MapTask工作机制MapTask就是Map阶...
      99+
      2023-06-15
    • java基础之关键字的示例分析
      这篇文章将为大家详细讲解有关java基础之关键字的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、static关键字1.1 使用static关键字定义属性在讲解static定义属性操作之前,首先...
      99+
      2023-06-20
    • JavaScript基础之数据类型的示例分析
      这篇文章主要为大家展示了“JavaScript基础之数据类型的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript基础之数据类型的示例分析...
      99+
      2022-10-19
    • Java基础的示例分析
      小编给大家分享一下Java基础的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、Java主要特点简单性、跨平台性、分布性、安全性、健壮性、平台独立与可移...
      99+
      2023-06-20
    • Java基础之SpringBoot整合knife4j的示例分析
      这篇文章给大家分享的是有关Java基础之SpringBoot整合knife4j的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。插件的特点非常简洁清爽的UI设计,接口的快速搜索。支持个性化设置,个性化设置包...
      99+
      2023-06-15
    • Java开发基础日期类的示例分析
      这篇文章主要为大家展示了“Java开发基础日期类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java开发基础日期类的示例分析”这篇文章吧。一、日期工具类package co...
      99+
      2023-05-31
      java
    • Java中String类的示例分析
      这篇文章主要为大家展示了“Java中String类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中String类的示例分析”这篇文章吧。带大家了解一下java的基础法语---S...
      99+
      2023-06-15
    • java基础之方法与对象的示例分析
      这篇文章主要介绍java基础之方法与对象的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、方法的基本定义限制条件:本次所讲解的方法指的是在主类中定义,并且由主方法由主方法直接调用。方法是指就是一段可以被重复...
      99+
      2023-06-20
    • Python基础之模块的示例分析
      这篇文章给大家分享的是有关Python基础之模块的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是模块容器 -> 数据的封装函数 -> 语句的封装类 -> 方法和属性的封装模块 ...
      99+
      2023-06-15
    • Python基础之进程的示例分析
      这篇文章将为大家详细讲解有关Python基础之进程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言进程,一个新鲜的字眼,可能有些人并不了解,它是系统某个运行程序的载体,这个程序可以有单个或...
      99+
      2023-06-15
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作