body, table{font-family: 微软雅黑; font-size: 10pt}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

String类概述及其构造方法
String类概述:
      字符串是由多个字符组成的一串数据(字符序列)
      字符串可以看成是字符数组
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
String 类是一个final类型的类,不能重写
构造方法:(String 类里面自己维护一个字符串数组)
public String()

public String(byte[] bytes)
public String(byte[] bytes,int offset,int length)

public String(char[] value)
public String(char[] value,int offset,int count)

public String(String original)
String类的判断功能:
boolean equals(Object obj);

boolean equalsIgnoreCase(String str);
boolean contains(String str);

boolean startsWith(String str);
boolean endsWith(String str);

boolean isEmpty();

String类的获取功能:

int length();
char charAt(int index);
int indexOf(int ch);      //默认转换 : byte,short,char—int—long—float—double;
//byte,short,char相互之间不转换,他们参与运算首先转换为int类型
int indexOf(String str);
int indexOf(int ch,int fromIndex);
int indexOf(String str,int fromIndex);
String substring(int start);
String substring(int start,int end);
String类的转换功能:

byte[] getBytes();    
// 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
char[] toCharArray();   
// 将此字符串转换为一个新的字符数组。
static String valueOf(char[] chs);   
//转字符串
static String valueOf(int i);

String toLowerCase();

String toUpperCase();

String concat(String str);
String类的其他功能:
替换功能
String replace(char old,char new);
String replace(String old,String new);
//去除字符串两空格       
String trim();        //返回字符串的副本,忽略前导空白和尾部空白。
按字典顺序比较两个字符串 
int compareTo(String str);

int compareToIgnoreCase(String str);

String类的特点及面试题:
█ 字符串是常量,它的值在创建之后不能更改
        String s = “hello”; s += “world”; 问s的结果是多少?
█ 面试题
        String s = new String(“hello”)和String s = “hello”;的区别?
        字符串比较之看程序写结果
        字符串拼接之看程序写结果

StringDemo.Java     构造函数 StringDemo2.java     方法
package com.java.string;
public class StringDemo {
        public static void main(String[] args) {
                String string = "abc";
                string+="hello";
                System.out .println(string);
                String s1=new String();
                System.out.println("s1 = "+s1); 
//String类重写toString方法,输出该String的内容
                //s1 =
                System.out .println("s1.length() = "+s1.length());  //s1.length() = 0
                byte[] bytes={97,98,99,100,101};
                String s2=new String(bytes);
                String s3=new String(bytes,1,3);               
                System.out .println("s2 = "+s2);  //s2 = abcde
                System.out .println("s2.length() = "+s2.length());  //s2.length() = 5
                System.out .println("s3 = "+s3);   //s3 = bcd
                System.out .println("s3.length() = "+s3.length());  //s3.length() = 3
                char[] ch={'a','b','e','中','国'};
                String s4=new String(ch);
                System.out.println("s4 = "+s4);  //s4 = abe中国
                System.out .println("s4.length() = "+s4.length());  //s4.length() = 5
                String s5=new String(s4);
                System.out .println("s5 = "+s5);  //s5 = abe中国
                System.out .println("s5.length() = "+s5.length());  //s5.length() = 5
                String string_1="abc";  //string_1指向常量池“abc”的地址
                String s_1=new String("abc");  //重点,堆上开辟空间的时候先去找常量池有没有“abc”,有的话堆上空间就只是简单地存储常量池“abc”地址
                System.out.println("string_1==s_1 ? "+(string_1==s_1));  //string_1==s_1 ? false  ;这里比较的是地址
                System.out.println("string_1.equals(s_1) ? "+(string_1.equals(s_1) ));  //string_1.equals(s_1) ? true;这里比较的是内容
        }
}
package com.java.string;
public class StringDemo2 {
        public static void main(String[] args) {
                String s1 = new String("hello");
                String s2 = new String("hello");
                System.out.println(s1==s2);  //false
                System.out.println(s1.equals(s2));  //true
                String s3 = new String("hello");
                String s4 = "hello";
                System.out.println(s3==s4);  //false
                System.out.println(s3.equals(s4));  //true
                String s5 = "hello";
                String s6 = "hello";
                System.out.println(s5==s6);  //true
                System.out.println(s5.equals(s6));  //true
                String ss1 = "hello";
                String ss2 = "world";
                String ss3 = "helloworld";
                //两个字符串变量相加,先在堆上开空间s4,然后再相加
                //如果是两个字面常量相加,先相加,然后再到常量池里找有没有,如果有就直接返回
                System.out.println(ss3==ss1+ss2);  //false;ss3指向常量池里的串地址;ss1+ss2返回的是堆上开辟的空间的地址
                System.out.println(ss3=="hello"+"world");  //true
                System.out.println(ss3==ss1+"world");   //false
                System.out.println(ss3.equals(ss1+ss2));  //true
                System.out.println(ss3.equalsIgnoreCase("HelloWorld"));  //true;不区分大小写,只看看相不相同
                System.out.println(ss3.contains("wod"));  //false
                System.out.println(ss3.startsWith("he"));  //true
                System.out.println(ss3.endsWith("ad"));  //false
                System.out.println(ss3.isEmpty());  //false
                byte[] bytes={97,98,99,100,101};
                String ss4=new String(bytes);
                byte in=99;
                System.out.println(ss4.indexOf(in));  //2
                String xx="hello";   //h的ascII码104
                String oo="abc";     //a的ascII码97
                System.out.println(oo.compareTo(xx));        //-7  ;两个字符串首字母ascII码相减
        }
}

//练习
1、把数组中的数据按照指定个格式拼接成一个字符串
举例:int[] arr = {1,2,3};        输出结果:[1, 2, 3]
2、字符串反转
举例:键盘录入”abc”                输出结果:”cba”
3、统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出现了5次
/*把数组中的数据按照指定个格式拼接成一个字符串
举例:int[] arr = {1,2,3};        输出结果:[1, 2, 3] */


public class test1 {
        public static void main(String[] args) {
                int[] arr={1,2,3};
                String str="";
                str+="[";
                for(int i=0;i<arr.length;++i){
                        str+=arr[i];
                        if(arr.length-1==i){
                                break;
                        }
                        str+=", ";
                }
                str+="]";
                System.out.print(str);
        }
}
/*字符串反转
举例:键盘录入”abc”                输出结果:”cba”*/


public class test2 {
        public static void main(String[] args) {
                Scanner input=new Scanner(System.in);
                String str=input.nextLine();
                //System.out.println(new StringBuilder(str).reverse().toString());
                //StringBuilder(String str);   //构造一个字符串生成器,并初始化为指定的字符串内容。
                String strReverse=stringReverse(str);
                System.out.println(strReverse);
                input.close();
        }
        public static String stringReverse(String str){
                char[] ch=str.toCharArray();
                for(int i=0;i<str.length()/2;++i){
                        char tmp=ch[i];
                        ch[i]=ch[str.length()-1-i];
                        ch[str.length()-1-i]=tmp;
                }
                String str1=new String(ch);
                return str1;
        }
/*统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出现了5次*/


public class test3 {
        public static void main(String[] args) {
                String str="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
                String subStr="java";
                int num=getCount(str,subStr);
                System.out.println(num);       
        }
        public static int getCount(String str,String subStr){
                int count=0;
                int i=str.indexOf(subStr);
                while(i!=-1){
                        count++;
                        str=str.substring(i+subStr.length());
                        i=str.indexOf(subStr);
                }
                return count;
        }
}

Java——String类的更多相关文章

  1. Java String类详解

    Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...

  2. JAVA String 类

    java String类中的常用方法:public char charAt(int index)返回字符串中第index个字符:public int length()返回字符串的长度:public i ...

  3. Java String类具体解释

    Java String类具体解释 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,非常多时候,我们对它既熟悉又陌生. 类结构: public fin ...

  4. Java 11 - Java String类

    Java String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: String gree ...

  5. Java-Runoob:Java String 类

    ylbtech-Java-Runoob:Java String 类 1.返回顶部 1. Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 ...

  6. Java String类的常用方法

    String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting original) ...

  7. Java学习笔记之:Java String类

    一.引言 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串最简单的方式如下: String str= "Hello w ...

  8. Java String类的比较运算

    面试题:(多选)以下返回true的有() A. "beijing" == "beijing" B. "beijing".equals(new ...

  9. Java String类和StringBuffer类的区别

    1.String与StringBuffer的区别简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改:而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象.St ...

  10. Java——String类中的compareTo方法总结

    String类的定义:    java.lang  类 String   java.lang.Object      java.lang.String 所有已实现的接口:Serializable, C ...

随机推荐

  1. 常见几种校验方法(CS和校验、CRC16、CRC32、BCC异或校验)

    总结一些通讯协议中常用到的几种校验方法: 1.CS和校验(如:标准188协议校验方式) /// <summary> /// CS和校验 /// </summary> /// & ...

  2. 树莓派GPIO

  3. LA 4329 乒乓比赛

    https://vjudge.net/problem/UVALive-4329 题意: 一条大街上住着n个兵乓球爱好者,经常组织比赛切磋技术.每个人都有一个不同的技能值ai.每场比赛需要3个人:两名选 ...

  4. Linux——vim/vi 简单学习笔记

    Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件.Vim/Vi 没有菜单,只有命令. 早前也用过Vim变过C++/C的代码, ...

  5. ros python 重置位置

    #!/usr/bin/env python import rospy import math import sys import commands import yaml from tf import ...

  6. myEclipse 下配置多个Tomcat

    1.进入perfomance 2. 进入server  右键点击configure server connector 3. 切换到 “Arguments” 面板,这里有 一个启动参数,就是修改一下路径 ...

  7. 一个简单可参考的API网关架构设计

    网关一词较早出现在网络设备里面,比如两个相互独立的局域网段之间通过路由器或者桥接设备进行通信, 这中间的路由或者桥接设备我们称之为网关. 相应的 API 网关将各系统对外暴露的服务聚合起来,所有要调用 ...

  8. infra 仪表盘效果

    private void Gauge2() { // Infragistics.WebUI.UltraWebGauge.UltraGauge ultraGauge2 = //new Infragist ...

  9. English trip -- Phonics 6 元音字母 u + Unit 5 B课 review

    Vowel  u [ʌ]  闭音节 bunny cut bug mushroom lunch ar er ur or ir = R (读音类似儿) e.g. dollar  美元 collar  n. ...

  10. UVA-1626 Brackets sequence (简单区间DP)

    题目大意:给一个有小括号和中括号组成的序列,满足题中的三个条件时,是合法的.不满足时是不合法的,问将一个不合法的序列最少添加几个括号可以使之变成合法的.输出最短合法序列. 题目分析:这是<入门经 ...