Java基础(31):String的大小写转换、分离成数组、==与equals()的区别

继续来看 String 类常用的方法,如下代码所示:

运行结果:

那么,“==” 和 equals() 有什么区别呢?

==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象

equals(): 比较存储在两个字符串对象中的内容是否一致

PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节1 个英文字符存储需要 1 个字节。所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89” ,而英文字母 “J” 对应 “74” 。同时,我们还发现汉字对应的字节值为负数,原因在于每个字节是 8 位,最大值不能超过 127,而汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示。

案例:

功能:统计指定字符串中字符 ‘a’ 出现的次数

分析:可以通过循环遍历字符串中的每一个字符,判断是否是字符 a ,如果是,则累加统计出现的次数

 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         // 定义一个字符串
 4         String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
 5
 6         // 出现次数
 7         int num = 0;
 8
 9          // 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
10         for (int i=0;i<s.length();i++)
11         {
12             // 获取每个字符,判断是否是字符a
13             if (s.charAt(i)==‘a‘) {
14                 // 累加统计次数
15                 num++;
16             }
17         }
18         System.out.println("字符a出现的次数:" + num);
19     }
20 }
时间: 2024-10-11 05:01:19

Java基础(31):String的大小写转换、分离成数组、==与equals()的区别的相关文章

关于Java基础知识 String StringBuffer StringBuilder三者的区别

Java基础中String StringBuffer StringBuilder 以下介绍 相同点:String,StringBuffer,StringBuilder最终底层存储与操作的都是char数组,StringBuffer和StringBuilder都继承了AbstractStringBuilder 不同点:String:char数组是final的,不可变,修改String时实际上是new一个新String对象返回,线程安全,频繁的增删操作时不建议使用 StringBuffer:线程安全(

java基础巩固系列(二):Integer与int之间的区别

在JDK1.5之后引入了自动装箱(autoboxing)与自动拆箱(unboxing),这让很多对java的初学者感到很疑惑,我刚才也是其中一员. 首先,有一些基本的概念需要了解: 1.Ingeter是int的包装类,int的初值为0,Ingeter的初值为null. 2.Integer是一个类,用Integer声明一个变量是一个对象类型(或者说引用类型):int是基本类型,用int声明的变量是非对象类型,即不能在其上调用方法. 3."=="作用于对象上的时候,其比较的是对象的引用本身

java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系

①HashSet是采用HashMap来实现的:这个HashMap的key就是放进HashSet中的对象,value就是一个Object类型的对象 ②当调用HashSet的add方法时,实际上是想HashMap中增加了一行(key-value对),该行的key就是往HashSet增加的那个对象,该行的value就是一个Object类型的常量. ③HashMap底层采用数组来维护 ④调用增加的那个对象的hashCode方法,来得到一个hashCode,然后根据该值来计算出一个数组的下标索引(计算出数

Java基础笔记-String类

String 类(被final修饰) 字符串是一种特殊的对象,一旦字符串被初始化就不可以被改变了.(内容不变) 例如: String  s = “abc”; String  s1 = new String(“abc”); s在内存中有一个对象, s代表的是一个类类型变量,”abc”是一个对象. s1在内存中有两个对象,分别是new出来的和:  “abc” . s == s1;的结果是false.   因为s和s1它们所对应的地址不同,比较的两个地址,s和s1中存储的地址数值是不同的.因此是fal

黑马程序员-Java基础之String与StringBuffer

String与StringBuffer < java.lang >-- String字符串 java中用String类进行描述.对字符串进行了对象的封装.这样的好处是可以对字符串这种常见数据进行方便的操作.对象封装后,可以定义N多属性和行为. 如何定义字符串对象呢?String s = "abc";只要是双引号引起的数据都是字符串对象. 特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中. ----------------------------------

整理Java基础知识--String类

Java String 类创建字符串最简单的写法:String i = "我是字符串":String 类是不可改变的,一旦创建了String对象,就固定了 String i = "123"; System.out.println("i = " + i); i = "abc"; System.out.println("i = " + i); 输出结果: 123 abc 等价于: String i = new

3.Java基础:String对象的创建和使用

一.常用的创建方式 String s1="abc": String s2="abc": s1==s2    ==> true 解析:s1和s2指向的是同一个字符串池地址 二.不常用的创建方式 String s1=new String("abc"): String s2=new String("abc"):: s1==s2    ==> false 解析:s1和s2指向的是不同的字符串池地址,new的时候会重新创建一

06. Java基础之String

      通过学习string源码,可以知道String类其实是通过char数组来保存字符串的.String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法. 一. toString Object中有个方法叫toString,所有的子类都可以重写这个方法.System.out.println(xx),括号里面的"xx"如果不是String类型的话,就自动调用xx的toString()方法.然后toString的基类实现是:该方法返回的是该J

java基础知识---String

一.字符串的不可变性 先看一段代码 1 package reverse; 2 3 public class Reverse { 4 public static void main(String[] args) 5 { 6 String c1=new String("abc"); 7 String c2=new String("abc"); 8 String c3=c1; 9 System.out.println("c1==c2:"+ (c1==c