import java.util.Arrays;
class Demo5
{
    public static void main(String [] args)
    {
        String name1="hello world";
        String name2="hello world";
        String name3=new String("hello world");
        String name4=new String("hello world");
        System.out.println( name1==name2 );//true
        System.out.println( name3==name4 );//false

        System.out.println("字符串的查找----------------------------------------");

        System.out.println("字符串的使用!String");
        System.out.println(name1.length()+":字符串的长度");
        System.out.println(name1.charAt(3)+":返回指定下标的字符");
        System.out.println(name1.indexOf('o')+":通过字符找到字符的下标");
        System.out.println(name1.lastIndexOf('o')+":返回最后一个字符的下标");

        System.out.println("字符串的判断-----------------------------------");

        String s="";
        System.out.println(s.isEmpty());//true  长度为0返回true 否则返回false
        String fileName="Demo1.java";
        System.out.println(fileName.endsWith(".java"));//判断某个是否已某个字符串结尾
        System.out.println(fileName.contains("java"));//判断是否包含某个字符串
        System.out.println(fileName.equals("java"));//false
        System.out.println("java".equals("java"));//true
        System.out.println("java".equalsIgnoreCase("JaVa"));//true忽略大小写比较

        System.out.println("字符串转换---------------------------------------");
        String str=new String(new char[]{'a','b','c','d','e'});
        System.out.println(str);

        char[] charArr=str.toCharArray();//字符串装换成字符数组
        System.out.println(Arrays.toString(charArr));

        String strBy=new String(new byte[]{97,98,99});
        System.out.println(strBy);
        byte [] byteArr=strBy.getBytes();
        System.out.println(Arrays.toString(byteArr));//字符串转换成byte数组

        System.out.println("字符串替换---------------------------------------");

        String strRe="hello world !";
        System.out.println(strRe.replace("world","java"));//都会重新创建一个对象,原来的 对象不会改变

        System.out.println("字符串切割---------------------------------------");
        String strSpl="hello world !";
        String[] strArraySpl=strSpl.split(" ");
        System.out.println(Arrays.toString(strArraySpl));

        System.out.println("字符串子串------------------按照指定顺序求字符串的一部分---------------------");
        String strSub="hello world !";
        System.out.println(strSub.substring(3));//也是产生新的字符串
        System.out.println(strSub.substring(3,9));//假如超过了字符串的长度,那么用"空"表示
        //System.out.println(strSub.subString(6,4))//运行时报错可以大于等于前面一个下标

        System.out.println("字符串大小转换---------------------------------------");
        String strUp="HELLO world";
        System.out.println(strUp.toUpperCase());
        System.out.println(strUp.toLowerCase());

        System.out.println("字符串去除两边空格---------------------------------------");
        String strTr="  hello world !  ";
        System.out.println(strTr.trim());

        //trim的实现  数组里面的length是属性不是方法
        String strTrm="  hello world !    ";
        char[] charTr=strTrm.toCharArray();
        int start=0;
        int end=charTr.length;
        for(int i=0;i<charTr.length;i++){
            if(charTr[i]==' ')
                start++;
            else
                break;
        }
        for(int i=charTr.length-1;i>=0;i--)
        {
            if(charTr[i]==' ')
                end--;
            else
                break;
        }
        System.out.println(strTr.substring(start,end+1));
    }

    /* string 对象的创建: String name1="my";是放在内存常量区中
        方式1: string对象是放在常量池中的一块内存地址
            放置之前先检查该区域是否已经放有该常量,如果有,直接返回地址 

        方式2:String name3=new String("my");
            这个是放在堆内存里面的,创建出来的对象是不相等的,因为内存地址不一样 

        String特点:
            1、由于字符串底层是由一个字符数组来实现的,所以String是不可变的
            2、String 重写了Object的hashCode方法
                == 表示比较的是地址

        String 常用的方法:

    */
}
class Demo7
{
    public static void main(String[] agrs)
    {
        System.out.println("String的自然排序!");

        String strA="abc";
        String strB="bcd";
        System.out.println(strA.compareTo(strB));//strA在strB的前面 (c-d)=-1返回负数

        String strC="abc";
        String strD="abcdw";
        System.out.println(strC.compareTo(strD));//返回-2 :3-5                

        String strE="abc";
        String strF="afd";
        System.out.println(strE.compareTo(strF));//(b-f)=-4

        String strG="dmmmabc";
        String strH="afdmmmmmmmmmmmm";
        System.out.println(strG.compareTo(strH));//(d-a)=3
    }
}

/*
    compareTo方法
        原理:
            1、该方法的调用者在传递参数字符串的前面,返回负数
               该方法的调用者在传递参数字符串的后面,返回正数
               如果相等返回0

            2、当调用者和参数只有一个字母,其实就是字母对应的码表的整数减法操作

    比较规则:
        1、两个字符串长度相等
            比较的字符:找到最开始不同字符进行比较,相减返回

        2、两个字符串长度不相等
            有相同字符:  比较的两个字符串的长度

            没有相同字符:比较最开始两个字符的

*/

java String常见的处理的更多相关文章

  1. java string常见操作题

    1. 每个基本类型封装类都有将string转换为基本数据类型的方法 对于非常大的数字请使用Long,代码如下 int age = Integer.parseInt("10");  ...

  2. java string常见操作(二)

  3. 从Java String实例来理解ANSI、Unicode、BMP、UTF等编码概念

    转(http://www.codeceo.com/article/java-string-ansi-unicode-bmp-utf.html#0-tsina-1-10971-397232819ff9a ...

  4. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

  5. java String.split()函数的用法分析

    java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ...

  6. 通过反编译深入理解Java String及intern(转)

    通过反编译深入理解Java String及intern 原文传送门:http://www.cnblogs.com/paddix/p/5326863.html 一.字符串问题 字符串在我们平时的编码工作 ...

  7. Java OOM 常见情况

    Java OOM 常见情况 原文:https://blog.csdn.net/qq_42447950/article/details/81435080 1)什么是OOM?  OOM,全称“Out Of ...

  8. Java英文单词Java基础常见英语词汇

    Java英文单词Java基础常见英语词汇(共70个)                                                                          ...

  9. Java总结——常见Java集合实现细节(1)

    Java提高——常见Java集合实现细节(1) 2018年04月18日 15:07:35 阅读数:25 集合关系图 Set和Map set代表一种集合元素无序.集合元素不可重复的集合 map代表一种由 ...

随机推荐

  1. Linq to Entities不识别方法

    db.UserValidates.Include(a => a.User).Where(uv => u.UserValidates.Contains(uv, c)).ToList(); 执 ...

  2. REST 相关

    REST 相关 REST:Representational State Transfer,表现层状态转化(出现在阮一峰的博客 理解RESTful架构 中,但是,很明显,Representational ...

  3. 《第一行代码》学习笔记8-活动Activity(6)

    1.返回上一个活动只需要按一下Back键,还有一个startActivityForResult()方法也是 用于启动活动,这个方法期望在活动销毁时能够返回一个结果给上一个活动. 2.startActi ...

  4. 一致性哈希与java实现

    一致性哈希算法是分布式系统中常用的算法.比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数 ...

  5. IOS网络开发实战(一)

      1 局域网群聊软件 1.1 问题 UDP协议将独立的数据包从一台计算机传输到另外一台计算机,但是并不保证接受方能够接收到该数据包,也不保证接收方所接收到的数据和发送方所发送的数据在内容和顺序上是完 ...

  6. SMA2SATA、PCIe2SATA转换模块(也有叫:Sata Test Fixtures)

    SMA2SATA.PCIe2SATA测试夹具(Sata Test Fixtures) 去年制作SMA2SATA.PCIe2SATA适配器的过程早就想写出来,但一直没有时间,今天星期六有个空儿,简单整理 ...

  7. About USB Data Link Cable API

    About USB Data Link Cable API The text on this webpage is licensed under the Creative Commons Attrib ...

  8. VMware 虚拟机使用RedHat,出现 connect: Network is unreachable解決方法

    http://www.linuxidc.com/Linux/2015-02/113119.htm http://www.osyunwei.com/archives/7829.html

  9. 关于 addEventListener 和 handleEvent 方法

    使用 addEventListener 可以绑定事件,并传入回调函数. Mozilla 0.9.1 和 Netscape 6.1 之后的版本不但支持传递函数引用,也都允许直接把拥有 handleEve ...

  10. 用C实现字符串分割并返回所有子串

    #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h> ...