黑马程序员--字符串
来源:互联网 发布:域名怎样备案 编辑:程序博客网 时间:2024/06/03 18:58
<span style="font-family:SimSun;font-size:14px;">------<a target=_blank href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------</span>
一字符串的特点
1、字符串是一个特殊的对象,字符串一旦初始化就不可以被改变。
2.区分s1与s2的区别:s1是一个对象,s2的"abc"是一个对象,而new String()又是一个对象,简单的说str1是一个对象,str2是2个对象.
<span style="font-family:SimSun;font-size:14px;">String s1="abc";String s2=new String("abc");</span>3.区分一下两个输出语句。第一个false,因为Java中new出来的是另外一个对象,==号是比较对象的内存地址值是否相同,由于是不同对象,所以结果为false。第二个为true,因为String类复写了Object类中的equals方法,建立了自己特定的比较方式,String类中比较的是字符串的内容是否相同,俩个都是"黑马程序员"所以结果为true
<span style="font-family:SimSun;font-size:14px;">System.out.println(str1==str2)System.out.println(str1.equals(str2))</span>
二String的方法
1.1获取字符串中字符的个数(长度)
int length();
1.2根据位置获取字符
char charAt(int index);
1.3根据字符获取在字符串中的第一次出现的位置
int indexOf(int ch);
1.4从指定位置进行ch的查找第一次出现位置
int indexOf(int ch,int fromIndex);
1.5根据字符串获取在字符串中的第一次出现的位置
int indexOf(String str);
1.6从指定位置进行ch的查找第一次出现位置
int indexOf(String str,int fromIndex)
<span style="font-family:SimSun;font-size:14px;">class String1{public static void main(String[] args){String s1="abcldnal";sop(s1.length());sop(s1.charAt(4));sop(s1.indexOf('a',3));sop(s1.lastIndexOf('a'));}public static void sop(Object obj){System.out.println(obj);}}</span>
2.1将字符串变成字符串数组(字符串的切割)
String [] split(String regex):【里面的条件是一个正则表达式】
2.2将字符串变成字符数组
char [] toCharArray();
2.3将字符串变成字节数组
byte [] getBytes();
2.4将字符串中的字母转成大小写
String toUpperCase();【大写】
String toLowerCase();【小写】
2.5将字符串中的内容进行替换
String replace(char oldch,char newch);
String replace(String s1,String s2);
2.6将字符串两端的空格去除
String trim();
2.7获取字符串中一部分字符串,也叫子串
String subString(int beginIndex,int endIndex);【包含begin,但不包含end】
String substring(int beginIndex);从beginIndex到最后
2.8两个字符串内容是否相同
boolean equals(Object obj);【复写Object的方法,所以传递的是Object对象】
boolean equalsIgnoreCase(String str);忽略大写比较字符串内容。
2.9字符串中是否包含指定字符串
boolean contains(String str);
2.10字符串是否以指定字符串开头
boolean startsWith(String str);
boolean endsWith(String str);
2.11比较字符串的顺序
int compareTo(String anotherString);【返回有三种结果,大于、小于、等于,所以用int表示,分别为正数,
负数,等于】
字符串实例:1模拟Trim方法
<span style="font-family:SimSun;font-size:14px;">class Trim1{public static void main(String[] args){String ss=" djhi ";sop(myTrim(ss));}public static String myTrim(String ss){int start=0,end=ss.length()-1;while (ss.charAt(start)==' ' && start<=end){start++;}while (ss.charAt(end)==' ' && start<=end){end--;}String s=ss.substring(start,end+1);return s;}public static void sop(Object obj){System.out.println(obj);}}</span>
2字符串反转
<span style="font-family:SimSun;font-size:14px;">class ReverseString{public static void main(String[] args){String ss="kjkdjhiddd";sop(myReverse(ss));}public static String myReverse(String ss){char[] arr=ss.toCharArray();int start=0,end=ss.length()-1;for (int x=start,y=end;x<=y ;x++,y-- ){swap(arr,x,y);}String s=new String(arr);return s;}public static void swap(char[] arr,int x,int y){char temp=arr[x];arr[x]=arr[y];arr[y]=temp;}public static void sop(Object obj){System.out.println(obj);}}</span>
实例:3获取两个字符串中最大相同子串;
<span style="font-family:SimSun;font-size:14px;">class MaxString{public static void main(String[] arg){String s1="kkjjoibidio";String s2="kcjjonbidi";String max=(s1.length()<s2.length())? s2:s1;String min=(max==s1)?s2:s1; System.out.println(run(max,min));}public static String run(String max,String min){for (int x=0;x<min.length();x++ ){for (int y=0;y<=x ;y++ ){String ss=min.substring(y,min.length()-x+y);if (max.contains(ss)){return ss;}}}return "";}}</span>
三字符串缓冲区StringBuffer
1.字符串缓冲区,用于存储数据的容器,2.特点:长度的可变的;可以存储不同类型的数据;最终要转成字符串进行使用;可以对字符串进行修改。
3方法:
3.1添加:
StringBuffer append(data);//data表示任意类型的数据
StringBuffer insert(int index,data);//在index位置上添加任意类型的数据
3.2删除:
StringBuffer delete(int start,int end);//包含头,不包含尾
StringBuffer deleteCharAt(int index);//删除指定位置的元素
3.3查找:
char charAt(int index);//查找指定位置的字符
int indexOf(String str);//查找字符串在字符串中首次出现的位置
int lastIndexOf(String str);//查找字符串在字符串中最后一次出现的位置
3.4修改:
StringBuffer replace(int start,int end,String str);//将指定位置的字符串
3.5替换。
void setCharAt(int index,char ch);//将指定位置的字符串进行替换。
三字符串缓冲区StringBuilder
1StringBuffer是线程同步的,用于多线程2StringBuilder是线程不同步的,通常用于单线程,可以提高效率。
3Jdk升级的目的 简化书写、提高效率、增加安全性
4 基本数据类型对象包装类
特点:为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。
用于描述该对象的类就成为基本数据类型对象包装类。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
5基本类型======>字符串
1 基本类型数值+” ”
2用String类中的静态方法valueOf(基本类型数值);
6字符串=====>基本类型
使用包装类中的静态方法 xxx parseXxx(“xxx类型的字符串”);
int parseInt(“intstring”);//里面的参数只能是int数字类型,不能是字符
long parseLong(“longstring”);
boolean parseBoolean(“booleanstring”);
只有Character没有parse方法
如果字符串被Integer进行对象的封装。
可以使用另一个非静态的方法,inValue(); ,将以个Integer对象转成基本数据类型值。
如: Integer i = new Integer("123");
System.out.println(i.intValue());打印的是123
7整数具备不同的进制体现。
十进制----->其他进制
Integer.toBinaryString(60)
Integer.toHexString(60)
Integer.toString(60,16); 60为要转的数字,16为要转换的进制是16进制
Integer.toString(60,4); //将60转换为4进制
8自动拆装箱
Integer i = 4; // i=new Integer(4);自动装箱,简化书写。
i = i+6 // i = new Integer( i.intValue() + 6) ; // i.intValue() 自动拆箱。
Integer a = new Integer("3");
Integer b = new Integer(3);
System.out.println(a==b);
System.out.println(a.equals(b));//带着自动拆箱的功能所以是true
System.out.println(a.compareTo(b));//打印0 代表两个对象内容相同,如果a大于b,打印为1,a小于b打印为-1
Integer in = 4;
in = in + 6;
System.out.println(in); in打印为10,自动拆装箱,不是两个对象相加。
- 黑马程序员-字符串函数
- 黑马程序员_字符串
- 黑马程序员-字符串
- 黑马程序员 字符串分割
- 黑马程序员_JAVA_字符串
- 黑马程序员-字符串
- 黑马程序员--.net字符串
- 黑马程序员_java字符串
- 黑马程序员--字符串类型
- 黑马程序员_字符串
- 黑马程序员--java字符串
- 黑马程序员-------字符串
- 黑马程序员---4、字符串
- 黑马程序员--字符串处理
- 黑马程序员_字符串
- 黑马程序员_java字符串
- 黑马程序员_字符串
- 黑马程序员 String字符串
- lightoj 1198Karate Competition
- VS2010中MFC利用TeeChart控件实现画图
- POJ2063
- java面向对象基础知识(三)
- 面试积累
- 黑马程序员--字符串
- 通俗理解encodeURL() 和 encodeRedirectURL()
- [NOIP2013]货车运输
- oracle支持的事物
- 数据结构学习(C++)—二叉树
- 在数组中求出两个数,使他们的和等于给定的一个数
- 593A 2Char
- Linux 套接字编程基础
- J2EE项目中使用Spring 4及.properties文件UTF-8编码问题