JAVA 12 (String类)

class Test

{

public static void main(String[] args)

{

String s1 = "abc";  //s1是一个类类型的变量,abc是一个对象,字符串的最大特点,一单被初始化就不能改变。s1是字符串的引用。

String s2 = new String("abc");

System.out.println(s1==s2);

System.out.println(s1.equals(s2));//String类复写了Object类中的equals方法,

//用于判断两个字符串是否相同

//s1,s2的区别:s1在内存中一个对象,s2有两个对象。

}

}

字符串类型常用方法

 

String类适用于描述字符串事物,提供了多个方法对字符串进行操作。

常见的方法有:

1,获取。

1.1 字符串中包含的字符数,即字符串长度。 int length()

1.2 根据位置获取位置上的某个字符。char charAt(int index)

1.3 根据字符获取该字符的在字符串中的位置。

int indexOf(int ch) //因为接收的是ASCII码,返回ch在字符串中第一次出现位置。

int indexOf(int ch,int fromindex)//从指定位置开始获取位置。

int indexOf(String str)

int indexOf(String str,int fromindex)

例子:

class Test

{

public static void method_get()

{

String str = "abcdeakpf";

//长度

sop(str.length());

//根据字符获取索引

sop(str.indexOf(‘a‘,3)); //如果没有找到返回-1

//根据索引获取字符

sop(str.charAt(4));

//反向查找字符出现的位置

sop(str.lastIndexOf(‘a‘));

}

public static void main(String[] args)

{

method_get();

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

2,判断。

2.1 字符串中是否包含某一个字符串。boolean contains(str)

2.2 字符串中是否有内容。boolean isEmpty()

2.3 字符串是否是以指定内容开头。 boolean startsWith(str);

2.4 字符串是以什么结尾。 boolean endsWith(str);

2.5 判断字符串内容是否相同 boolean equals(str);

2.6 忽略大小写判断内容是否相同 boolean equalsIgnoreCase(str);

class Test

{

public static void method_is()

{

String str = "ArrayDemo.java";

sop(str.startsWith("Array"));

sop(str.endsWith(".java"));

sop(str.contains("Demo"));

}

public static void main(String[] args)

{

method_is();

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

3,转换。

3.1 将字符数组转成字符串

构造函数: String(char [])  / String(char [],offeset,count):字符数组部分转为字符串

静态方法:static String copyValueOf(char [])  ,static String copyValueOf(char [],offeset,count)

3.2 将字符串转成字符数组

char [] toCharArray();

3.3 将字节数组转成字符串

Stirng(byte [])

3.4 将字符串转成字节数组

byte [] getBytes()

3.5 将基本数据类型转换成字符串:static String valueOf(int/doubule)  同

3+""

举例:

class Test

{

public static void method_trans()

{

char [] arr ={‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘};

String s = new String(arr);

sop(s);

String s2 = new String(arr,1,3);

sop(s2);

String s1 = "zxcvbnm";

char [] chs = s1.toCharArray();

for(int x=0;x<chs.length;x++)

sop(chs[x]);

}

public static void main(String[] args)

{

method_trans();

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

4,替换:String replace(oldchar,newchar)

5,切割:String split(regex)

6,子串:获取字符串中的一部分。:String substring(begin)/(begin,end)

7,转换,去除空格,比较。

7.1 字符串转成大写或者小写。String toUpperCase();  String toLowerCase();

7.2 将字符串两端多余空格去除。String trim();

7.3 将字符串进行自然顺序比较。int compareTo(stirng);

练习1:除去两端空格:charAT,substring(begin,end)

练习2:反转字符串:toCharArray()

练习3:统计指定字符串出现次数,int indexOf(str,index)

练习4:寻找最大长度子串:两个循环,控制最大子串长度,判断是否存在,boolean  str.contains(str) //原来和indexOf类似

练习4代码:

public class Test1

{

public static void main(String args [])

{

String a="sifduhsdifhsahasiudhiszhangxushissshuidhiasdfasndsf";

String a1="asdfsadfzhangxushissshuidkljfg";

sop(getCommon(a,a1));

}

public static String getCommon(String str,String str1)

{

for(int x=0;x<str.length();x++)

{

for(int y=0;y<=x;y++)

{

String str2=str1.substring(y,str1.length()-x+y);

if(str.contains(str2))

return str2;

11111

}

}

return null;

}

public static void sop(Object c)

{

System.out.println(c);

}

}

StringBuffer

StringBuffer是字符串缓冲区。

是一个容器:

1,长度是可以变化的

2,可以直接操作多种数据类型

3,最终会通过toString方法变成字符串

功能:

1,存储

StringBuffer

append():将指定数据作为参数添加到已有数据的结尾处。返回的还是原缓冲区对象。

StringBuffer insert(index,数据):可以将指定数据插入到指定位置,0开始。

2,删除

StringBuffer delate(int start , int end):包含头,不包含结尾。

StringBuffer delateCharAt(int index):删除指定位置元素

3,获取

char charAt(int index)

int indexOf(String str)

int lastIndexOf(String str)

int length()

String substring(int start,int end)

4,修改

StingBuffer replace(int start,int end,String str):将指定位置替换成指定字符串

setCharAt(int index,char c):指定位置位置替换字符

5,反转。

StringBuffer reverse()

6 char [] sb.getChars(int srcbegin,int srcend,char [],int index from char [])

 

StringBuilder

 

方法和StringBufffer差不多,基本都用。

不同之处在于:

StringBuffer是线程同步的,是安全的。但老是判断锁,浪费资源。

StringBuilder是不线程不同步的。多线程不建议使用。

升级三个因素

1,建华书写

2,提高效率

3,提供安全性

基本数据类型对象包装类

 

byte        Byte

short        Short

int             Integer

long          Long

boolean     Boolean

float             Float

double        Double

char            Character

基本数据类型        对应的对象,类

基本数据类型包装类的最常见作用就是,基本数据类型和字符串类型之间的相互转换。

--->:

基本数据类型+“”;

基本数据类型.toString(基本数据类型);

如:Integer.toString(34);

<---:

格式: xxx a = Xxx.passXxx("string");

int number=Integer.passInt("123");

String s = Strings.valueOf(String)

public class Test1

{

public static void main(String args [])

{

sop(Integer.MAX_VALUE);

}

public static void sop(Object c)

{

System.out.println(c);

}

}

 

 

时间: 2024-10-06 22:59:53

JAVA 12 (String类)的相关文章

【转载】Java中String类的方法及说明

转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数     String(byte[ ] bytes):通过byte数组构造字符串对象.     String(char[ ] value):通过char数组构造字符串对象.     String(Sting original):构造一个original的副本.即:拷贝一个original.     String(Strin

JAVA的String 类【转】

String类 1.String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”; 其实按照面向对象的标准语法,其格式应该为: String s = new String(“abc”); s = new String(“Java语言”); 只是按照面向对象的标准语法,在内存使用上存在比较大的浪费.例如String s = new String(“abc”);

Java中String类的方法及说明

String : 字符串类型 一.构造函数     String(byte[ ] bytes):通过byte数组构造字符串对象.     String(char[ ] value):通过char数组构造字符串对象.     String(Sting original):构造一个original的副本.即:拷贝一个original.     String(StringBuffer buffer):通过StringBuffer数组构造字符串对象.  例如:      byte[] b = {'a',

java笔记--String类格式化当天日期转换符文档

String类格式化当天日期 转换符:%tb : 格式化为月份的英文缩写%tB : 格式化为月份的英文全写%ta : 格式化为星期%tA : 格式化为星期%ty : 格式化为两位年份值%tY : 格式化为四位年份值%tm : 格式化为两位月份值%td : 格式化为两位日期值%te : 格式化为星期一位日期值%tH : 格式化为两位24时制小时值(00-23)%tk : 格式化为两位24时制小时值(0-23)%tI : 格式化为两位12时制小时值(01-12)%tl : 格式化为两位12时制小时值

java的String类入门

java的String类入门 1. 概述 只要是用双引号括起来的都叫字符串 String类在包java.lang.String中,只要是java.lang中的包,在写程序时都不需要import进来 字符串的内容一旦创建,将不可再改变,是一个常量 正是因为字符串不可改变,所以字符串是可以共享使用的.想想如果共享的东西大家可以随便修改,用一次残一次,谁还想去共享呀,想想都恶心,共享单车大家都可以用,就代表用的时候可以随便糟蹋它,拆它??? 字符串效果上相当于是char[]字符数组,但是底层原理是by

hadoop中Text类 与 java中String类的区别

hadoop 中 的Text类与java中的String类感觉上用法是相似的,但两者在编码格式和访问方式上还是有些差别的,要说明这个问题,首先得了解几个概念: 字符集: 是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.例如 unicode就是一个字符集,它的目标是涵盖世界上所有国家的文字和符号: 字符编码:是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对.即在符号集

【java】String类的基本方法

Java的String类基本方法 一.构造函数 函数 返回值 作用 String(byte[] bytes) String 通过byte数组构造字符串对象 String(char[] chars) String 通过char数组构造字符串对象 String(String string) String 拷贝一个值为string的字符串对象 String(StringBuffer buffer) String 通过StringBuffer构造字符串对象 二.String类的基本方法 函数 返回值 作

Java中String类学习总结

java中String类的使用频率非常高,本人在学习此模块时,认为下列几点知识值得注意: 一.String是不可变对象 java.lang.String类使用了final修饰,不能被继承.Java程序中的所有字面值,即双引号括起的字符串,如"abc",都是作为String类的实例实现的.String是常量,其对象一旦构造就不能再被改变.换句话说,String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创造了一个全新的String对象,以包含修改后的字符串内容.而最

深入分析Java的String类的方法与特点

字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 JDK中提供一个名为String的类,对应字符串这个变量类型. 源码分析 既然JDK中的String类对应了字符串变量类型,为了熟练地掌握Java中字符串相关的技能,我们必须深入地分析和研究一下这个类.编码界有一句名言叫做 "源码面前,了无秘密",因此,我们第一步就是来看看String类