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. 【第二十九章】 springboot + zipkin + mysql

    zipkin的数据存储可以存在4个地方: 内存(仅用于测试,数据不会持久化,zipkin-server关掉,数据就没有了) 这也是之前使用的 mysql 可能是最熟悉的方式 es Cassandra ...

  2. MOOC视频学习

    mooc地址 2018/2/6-2/7学习计划: 学习第一周(1.1-1.4)内容. 学习笔记 2018/2/8-2/9学习计划: 学习第二周(1.5.2.1-2.5)内容. 学习笔记 2018/2/ ...

  3. c++之数组形参

    1.问题,最近看项目log模块,_log模板函数中的一个参数竟然看蒙x了.函数原形是这样: template<size_t size>void _Log(char (&strDes ...

  4. 深蓝色 --ppt

    Deep Learning of Binary Hash Codes for Fast Image Retrieval [Paper] [Code-Caffe] 1. 摘要 针对图像检索问题,提出简单 ...

  5. XML序列化、反序列化

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Run ...

  6. BZOJ 2669 【CQOI2012】 局部极小值

    题目链接:局部极小值 这是一道\(dp\)好题. 由于需要保证某些位置比周围都要小,那么我们可以从小到大把每个数依次填入,保证每个局部极小值填入之前周围都不能填,就只需要在加入的时候计数了. 由于局部 ...

  7. c语言 数组合并

    #include<stdio.h> int main() { int m,n,i,j,k; printf("Enter no. of elements in array1:\n& ...

  8. Flex布局兼容知识点总结

    转载,原文http://www.cnblogs.com/tugenhua0707/p/5180841.html,部分截取 假设父容器class为 box,子项目为item.旧版语法如下:一:定义容器的 ...

  9. scRNA-seq单细胞测序数据分析工具汇总

    本文总结自一篇综述: Computational approaches for interpreting scRNA-seq data 单细胞分析分为两个层次: cell level gene lev ...

  10. mtime 的具体解释

    find . -mtime +0 # find files modified greater than 24 hours ago find . -mtime 0 # find files modifi ...