标签:
1 构造函数
package String;
public class StringConstructor {
public static void main(String []args)
{
StringConstructorDemo();
StringConstructorDemo2();
}
private static void StringConstructorDemo2() {
char []arr={‘w‘,‘a‘,‘p‘,‘q‘,‘x‘};
String s=new String(arr);
String s1=new String(arr,2,3);
System.out.println(s1);
}
private static void StringConstructorDemo() {
String s=new String(); //等效于String s="";但是不等效于String s=null;
//字节数组变成字符串并连接
byte[]arr={65,66,67,68};
String s1=new String(arr);
System.out.println("s1="+s1);
}
}
2
String类常用方法
package String;
public class StringMethodDemo {
public static void main(String []args)
{
/*按照面向对象的思想对字符串的功能进行分类*/
/*
* 1获取
* 1.1获取字符串中子串的字数
* int length();
* 1.2根据位置获取字符
* char charAt(int index)
* 1.3 根据字符获取在字符串中第一次出现的位置
* int indexOf(int ch)
* int indexOf(int ch,int from index)//从指定位置开始找
* int indexOf(String str)
* int indexOf(String str,from index)
*上述的加上last就是从后面往前找
*
*1.4获取字符串中一部分字符串,也叫子串
*substring (int beginIndex ,int endIndex )
*substring (int beginIndex )//直到末尾
*
*
* 2转换
* 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 oldChar,char newChar)
* 2.6将字符串两端空格去除
* String trim();
* 2.7将字符串进行连接
* String concat(string)
* 3 判断
* 3.1两个字符串内容
* boolean equals(Object obj)
* boolean equalIgnoreCase(String arr)
* 3.2字符串中是否包含指定字符串
* boolean contains(String arr)
* 3.3字符串是否以指定字符串开头,是否以指定字符串结尾
* boolean beginwith(String arr) boolean endwith(String arr)
*
* 4比较
* 4.1按照字典顺序比较字符串
* int comparrTo(String arr)
*/
//stringMethodDemo1();
//stringMethodDemo2();
//stringMethodDemo3();
stringMethodDemo4();
}
private static void stringMethodDemo4() {
}
private static void stringMethodDemo3() {
String s="abc";
System.out.println(s.equals("AB"));
}
private static void stringMethodDemo2() {
/*String s="张三,李四,王五";
String []arr=s.split(".");
for(int i=0;i<arr.length;i++)
System.out.println(arr[i]);
char []chs=s.toCharArray();
for(int i=0;i<chs.length;i++)
System.out.println(chs[i]);
s="ab你";
byte[]bytes=s.getBytes();
for(int i=0;i<bytes.length;i++)
System.out.println(bytes[i]);
*/
System.out.println("abv".toUpperCase());
String s="abcsDSSfK";
System.out.println(s.replace(‘S‘, ‘J‘));
System.out.println(s.concat("NBACBA"));
}
private static void stringMethodDemo1() {
String s="abcdae";
System.out.println("length:"+s.length());
System.out.println("char:"+s.charAt(2));
System.out.println("index:"+s.indexOf(‘a‘));
System.out.println("lastindex:"+s.lastIndexOf(‘a‘));
System.out.println("substring:"+s.substring(2,4));
}
}
3 intern方法
package String;
public class StringObjectDemo {
public static void main(String[] args) {
//String s1="abc";
//String s2="abc";
//intern();
String s1=new String("abc");
String s2=s1.intern();
System.out.println(s1==s2);
}
}
4练习
package String;
/**
* 字符串排序
* @author 黄二狗
*
*/
public class StringPractice {
public static void main(String[] args) {
String []arr={"anc","cbs","xbx,","nas","csd","dbs"};
printArray(arr);
sortArray(arr);
System.out.println("----");
printArray(arr);
}
private static void sortArray(String[] arr) {
for(int i=0;i<arr.length-1;i++)
for(int j=i+1;j<arr.length;j++)
{
if(arr[i].compareTo(arr[j])>0)
swap(arr,i,j);
}
}
private static void swap(String[] arr, int i, int j) {
String temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
private static void printArray(String[] arr) {
for(int i=0;i<arr.length;i++)
{
System.out.println("arr"+i+arr[i]);
}
}
}
package String;
public class StringPractice22 {
//计算子串个数
public static void main(String[] args) {
String str="abcbcsadadabcas";
String key="ab";
int count=getKeyStringCount(str,key);
System.out.println("count="+count);
}
/**
* 获取子串在整串中出现的次数
* @param str
* @param key
* @return
*/
private static int getKeyStringCount(String str, String key) {
int count=0;
int index=0;
while((index=str.indexOf(key))!=-1)
{
str=str.substring(index+key.length());
count++;
}
return count;
}
}
package String;
/**
* 获取最大子串
* @author 黄二狗
*
*/
public class StringPractice3 {
public static void main(String[] args) {
String s1="qwerabctyuiop";
String s2="xcabcdvbn";
String s=getMaxSubstring(s1,s2);
System.out.println("s="+s);
}
public static String getMaxSubstring(String s1,String s2) {
for(int i=0;i<s2.length();i++)
{
for(int a=0,b=s2.length()-i;b!=s2.length()+1;a++,b++)
{
String sub=s2.substring(a,b);
if(s1.contains(sub))
return sub;
}
}
return null;
}
}
2 StringBuffer类
1 StringBuffer特点
/*
* StringBuffer就是字符串缓冲区
* 用于存储数据的容器
* 特点
* 1 长度是可变的
* 2 可以存储不同类型数据
* 3 最终要转化成字符串进行使用
* 4 可以对字符串进行修改
*
* 既然是一个容器,应该具备什么功能呢?
* 1 添加
* StringBuffer append(data);
* 2 删除
*
* 3 查找
*
4 修改 需要时查找API
* /
可变数组原理:其实就是开辟一个更大的数组 将原数组中的内容进行复制
3 StringBuilder类
用法与StringBuffer一样 但是不保证同步 线程不安全。在不考虑同步的情况下,选用StringBuilder
标签:
原文地址:http://www.cnblogs.com/HJL085/p/5793995.html