java 中的String类型

java 中的String类型
   (1)String类型的数据可以表示所有的数据类型。

(2)String中的字符串常量与一般的字符串:
                String str0 = "hello";//字符串常量“hello”被预先放到了数据段的字符串常量池中
                String str1 = "hello";//直接从常量池中寻找已有的字符串常量
                String str2 = new String("hello");//new出一个新的字符串对象,在堆中
                String str3 = new String("hello");//new出一个新的字符串对象,在堆中
                System.out.println(str0 == str1);//打印true
                System.out.println(str2 == str3);//打印false
                System.out.println(str2.equals(str3));//打印true
        
        //String类型对象(不管是常量池对象还是在堆中对象,其内容都不可变)
        str3 = str2;
        str2 = "world";
        System.out.println(str3);//打印的依然是字符串hello
   (3)对于String str2 = new String("hello");产生了两个字符串对象(hello与str),产生了三个对象(两个字符串对象,一个Class对象)。

(4)字符串中常用的方法:

//字符串比较equals、equalsIgnoreCase、compareTo、compareToIgnoreCase

System.out.println("hello".equals("hello"));//判断两个字符串是否相等-----打印true

System.out.println(“hello”.equalsIgnoreCase("HeLLo"));//忽略大小写比较相等---打印true

System.out.println("hello".compareTo("world"));//字符串比较:先依次比较第一个不同字母的Ascii码差值,                                                               //如果全部相同再比字符串长度----打印-15

System.out.println("hello".compareToIgnoreCase("helloworld"));
        
        //字符串中与字符数组有关的方法

System.out.println(str0.length());//字符串长度

System.out.println(str0.charAt(0));//字符串第几个位置是什么字符

char[] strArray = str0.toCharArray();//把一个字符串转换为字符数组
        for(char tmp : strArray){
            System.out.println(tmp);
        }
    
        byte[] b = str0.getBytes();//把一个字符串转换为字节数组

System.out.println(str0.indexOf(‘l‘));//某个字符在字符串中首次出现的下标

System.out.println(str0.indexOf(‘l‘,3));//某个字符串从指定下标开始查看某个字符首次出现的下标。

System.out.println(str0.lastIndexOf(‘l‘));//某个字符在字符串中最后一次出现的下标
        
      //字符串内容相关的方法

System.out.println(str0.toUpperCase());//转换为全大写

System.out.println(str0.toLowerCase());//转换为全小写

System.out.println(str0.startsWith("wor"));//判断字符串以什么开头

System.out.println(str0.endsWith("lo"));//判断字符串以什么结尾

System.out.println(str0.contains("ell"));//判断一个字符串是否在另一个字符串中--包含

System.out.println(str0.concat("world"));//将一个字符串加到另一个字符串尾部

System.out.println(str0.replace(‘l‘,‘L‘));//将字符串中的某个字符替换成新字符

System.out.println(str0.replace("l","fuck"));//将字符串中的某个子串替换成新的子串

System.out.println(str0.substring(1,3));//字符串按位置进行截取,前闭后开的区间

System.out.println(str0.substring(2));//字符串从这个位置开始截取。

//字符串中的trim()方法:

System.out.println("  hello    world  ".trim());//去掉前后的空格————-打印结果:hello    world

//字符串中的split()方法:
    
                String date = "2016-03-02";
                String[] result = date.split("-");//split内的参数为正则表达式。单纯的?应该写为“\\?”
                for(String a : result){
                 System.out.println(a);
                }

运行结果:
                      2016
                      03
                      02

若date = “-03-02”;打印的结果为:
                      03
                      02
            此时的result的长度依然是3,不过一个是空串。String a = "";(空串)   String a = null;(为空)

所以判断字符串是否有效:if(str != null && !(str.trim().equals("")))----两个的位置还不能调换,否则会报空指针异常。

时间: 2024-10-14 00:22:07

java 中的String类型的相关文章

java中关于String 类型数据 的存储方式

Constant Pool常量池的概念: 在讲到String的一些特殊情况时,总会提到String Pool或者Constant Pool,但是我想很多人都不太 明白Constant Pool到底是个怎么样的东西,运行的时候存储在哪里,所以在这里先说一下Constant Pool的内容. String Pool是对应于在Constant Pool中存储String常量的区域.习惯称为String Pool,也有人称为 String Constant Pool.好像没有正式的命名?? 在java编

Java中的String类型

1.基本类型和引用类型 在C语言里面,是有指针这么一个变量类型的,指针变量保存的就是所要指向内容的地址.在Java里面,没有了指针的这么个说法,而是换了一个词:引用类型变量. 先说Java里面的基本类型,所谓基本类型,很简单,就是一个数字,一个字符或一个布尔值,数字里面包含整型.浮点型等,没有什么好说的. 再说这个引用类型,他的概念就很像指针了.引用变量的值指向内存空间的引用,就是C中的地址,所在这个地址里面的内容就是要被他引用的对象. 2.String就是一个引用类型 大多数时候,我们在用St

java中的String类型(不知道理解的好不,请教大神)

当执行String a = "abc"; 时候(前提条件是:执行这行代码之前在常量池中没有abc,若有,a直接引用在常量池中abc不在创建一个对象,若无,执行下面的描述) java虚拟机会在栈中创建char型的值'a','b','c',然后在堆中创建一个String 对象,它的值(value)是刚才在栈中创建的三个char类型值组成数组{'a','b','c'},最后这个新创建的String 对象会被添加到字符串池中. String b = new String("abc&q

Java中关于String类型的10个问题

1. 如何比较两个字符串?用“=”还是equals 简单来说,“==”是用来检测俩引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等.只要你想检测俩字符串是不是相等的,你就必须得用equals()方法. 如果你知道“字符串保留(string intern)”的概念那就更好了. 2. 为什么安全敏感的字符串信息用char[]会比String对象更好? String对象是不可变的就意味着直到垃圾回收器过来清扫之前它们都不会发生变化的.用数组的话,就可以很明确的修改

关于JAVA中的String类型的总结

因为前几天在贴吧里看到有人问了一道面试题: 原题地址:http://tieba.baidu.com/p/3479790275?pid=61955018493&cid=0#61955018493 1 public class StringTest { 2 3 public static void change(String str){ 4 str = "bbb"; 5 } 6 7 8 public static void main(String[] args){ 9 String

Java中的字符串类型(String)

String 字符串是一个引用数据类型,字符串都是对象. String特性:1.在程序中出现的字符串字面量(常量),在程序中运行时会以对象的形式保存在JVM内存的字符串池中,并且所有的这些字符串字面量对象都是共享的: 2.(不变特性)字符串一旦定义就永远不会被改变了: 不变模式 - 23种设计模式之一: StringBuffer StringBuffer - 可变的字符序列,它在日常工作中就是做字符串连接的,线程安全的: - appand()方法; StringBuilder 与 StringB

Java中的String与常量池

string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种基本数据类型,String是一个类类型. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null: 3. String str=”k

1 Java中的时间类型

总结:sql中的时间转 util的时间直接赋值即可:反过来,必须先吧util下的时间转换成毫秒,再通过sql的构造器生成sql的时间格式. 1 Java中的时间类型 java.sql包下给出三个与数据库相关的日期时间类型,分别是: l Date:表示日期,只有年月日,没有时分秒.会丢失时间: l Time:表示时间,只有时分秒,没有年月日.会丢失日期: l Timestamp:表示时间戳,有年月日时分秒,以及毫秒. 这三个类都是java.util.Date的子类. 2 时间类型相互转换 把数据库

Java中与String有关的且不得不说的事

如果以下有与Java堆栈和JVM常量池有关的可以访问下面的连接 Java当中的堆与栈详细解析 JVM中的常量池解析 前期记得自己学习编程语言的时候,只要能写出代码就可以.编程语言不就是写程序的吗?自己报着这种目的性很强的心态去学习,忽略了其中的精彩部分,学完C++之间学Java感觉Java中的String和C++中的没有什么区别,都是能存储大小随意变化的字符串. 如:String s="12345"; s  = "0";如果是字符串数组的话那就不,感觉很方便很好用.