黑马程序员---String学习笔记
2015-05-03 20:48
246 查看
String学习笔记
(一)String 一旦初始化就不可被改变;package cn.cx.string.study;
publicclass Demo01 {
publicstaticvoid main(String[] args) {
String s1 =
"asd";//s1是一个类类型变量,"asd"是一个对象。
//s1 = "as";//"asd"没变,s1这个引用变了
String s2 = new String("asd");
System.out.println(s1==s2);//false,比较地址值
System.out.println(s1.equals(s2));//true,String类覆写了equals方
法,定义了自身独特的
//内容,并未再去比较地址值。
//s1与s2的区别:s1代表一个对象,s2有两个
}
package cn.cx.string.study;
publicclass Demo02 {
publicstaticvoid main(String[] args) {
String s1 =
"abc";
String s2 =
"abc";
String s3 = new String("abc");
System.out.println(s1==s2);//true,指向同一对象
System.out.println(s1==s3);//false
}
}
(二)四道练习:
package cn.cx.string.study;
publicclass MyTrim {
publicstaticvoid main(String[] args) {
/*String s = " dfg jh ";
System.out.println(myTrim(s));
System.out.println(myTrim(s).length());*/
//System.out.println(myReverse("asdfrth"));
/*String ori = "aaffgsgaaghdaafraalaak";
String myStr = "aa";
System.out.println(myNum2(ori,myStr));*/
String l =
"asdfgjavajdch";
String s =
"asjavappoub";
System.out.println(getMaxSubStr(l,s));
}
//自定义trim
publicstatic String myTrim(String str) {
int start = 0;
int end = str.length()-1;
while(start<end && str.charAt(start)==' ') {
start ++;
}
while(start<end && str.charAt(end)==' ') {
end --;
}
return str.substring(start, end+1);
}
//反转
publicstatic String myReverse(String str) {
char[] chs = str.toCharArray();
for(int i=0; i<chs.length/2;
i++) {
char temp = chs[i];
chs[i] = chs[chs.length-i-1];
chs[chs.length-i-1] = temp;
}
returnnew String(chs);
}
//获取一个字符串在另一个字符串的次数
publicstaticint myNum(String oriStr, String myStr) {
int num = 0;
int index = 0;
while((index = oriStr.indexOf(myStr)) != -1) {
num ++;
oriStr = oriStr.substring(index+myStr.length(), oriStr.length());
System.out.println(oriStr);
}
return num;
}
publicstaticint myNum2(String oriStr, String myStr) {
int num = 0;
int index = 0;
while ((index=oriStr.indexOf(myStr, index))!= -1) {
num ++;
index = index + myStr.length();
}
return num;
}
//获取两字符串中最大相同子串
publicstatic String getMaxSubStr(String l, String s) {
String temp = null;
for(int i=0; i<s.length(); i++) {
for(int j=0,z=s.length()-i; z!=s.length()+1;
j++,z++) {
temp = s.substring(j, z);
if(l.contains(temp)) {
return temp;
}
}
}
returnnull;
}
(三)StringBuffer是字符串缓冲区,是容器,且长度可变,线程同步。StringBuilder是线程不同步的,单线程时使用效率高。
相关文章推荐
- 黑马程序员---OC学习笔记之NSString的其他使用和NSMutableString的用法
- 黑马程序员_java学习笔记之(StringBuider&Stringbuffer)区别
- 黑马程序员_学习笔记:8) 常见API:String、StringBuffer、StringBuiler、Integer
- 黑马程序员-Java基础-String和StringBuffer学习笔记
- 黑马程序员-java学习笔记-String
- 黑马程序员—Java基础学习笔记之String&&StringBuffer&&StringBuilder
- 黑马程序员--String基础学习笔记
- 黑马程序员--------String学习笔记
- 黑马程序员之C# 学习笔记:关于string与stringbuilder的区别
- 【黑马程序员】string,StringBuilder(学习笔记)
- 黑马程序员java学习笔记——String字符串及StringBubuffer容器
- 黑马程序员 10 HTTP协议学习笔记
- 黑马程序员-IOS学习笔记(十二)Foundation框架
- 黑马程序员——Objective-C程序设计(第4版)学习笔记之07-类——黑马 IOS 技术博客
- 【黑马程序员】Java学习笔记之继承(一)(面向对象)
- 黑马程序员_学习笔记 父类和子类
- 黑马程序员--- 学习笔记(第二天)
- 黑马程序员---Java高新技术学习笔记(后篇)
- 黑马程序员_集合学习Collection之List学习笔记
- 黑马程序员之C#编程基础学习笔记:用while continue实现计算1到100之间的除了能被7整除之外所有整数的和。