字符串对象操作:
1. length();
2. charAt();
3. equals(), equalsIgnoreCase()
equals(); //不忽略大小写
equalsIgnoreCase(); //忽略大小写
4. compareTo(); && compareToIgnoreCase();
5. indexOf(); //搜索字符串
6. startsWith(); && endsWith(); //是否以某个前缀后缀,开头或者结束
7. regionMatches(); //测试两个字符串区域是否相等
字符串对象修改:
int x;
String s = "2068";
x = Integer.parseInt(s);
String s = new String("1234.5678");
float n = Float.parseFloat(s);
float x = 1234.5678f; //float没有toString方法
String s = String.valueOf(x);
String s1 = "mynameisxmh";
char[] temp = new char[6];
s1.getChars(2, 8, temp, 0);
for (char c : temp) {
System.out.print(c);
}
一个String对象的长度是固定的,不能改变它的内容。
编程中使用的“+”会产生一个新的String对象。
如果程序对这种字符串的操作很频繁,建议使用StringBuffer。
stringBuffer是字符串缓冲区。
是一个容器.
特点:
1,长度是可变化的。
2,可以一次操作多个数据类型.
3,最终会通过toString方法变成字符串。
C create U update R read D delete
1,存储.
StringBuffer append():将指定数据作为参数添加到己有数据结尾处. StringBuffer insert (index,数据):可以将參据插入到指定index位置
2,刪除.
StringBuffer delete(start, end):删除缓冲区中的数据,包含start,不包含end. StringBuffer deleteCharAt(index);删除指定位置的字符.
3,获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
4,修改.
StringBuffer replace(start,end,string);
StringBuffer sb = new StringBUffer(“abcde”);
Sb.replace(1, 4, “java”);//ajavae 替换1~4位的字符(!!!不包括4)
void setCharAt(int index, char ch);
5,反转.
StringBuffer reverse();
//StringBuffer号称是字符串缓冲区,比String方便
StringBuffer buf = new StringBuffer("Java");
//附加
buf.append(" Guide Ver1/");
buf.append(3);
//插入
buf.insert(5, "Student ");
//将给定索引处的字符设置为 ch
buf.setCharAt(23, '.');
//替换相应的字符串
buf.replace(24, 25, "4");
//转换为字符串
String s = buf.toString();
System.out.println(s);
StringBuilder类是一个可变的字符序列。它提供一个与StringBuiffer类兼容的API,但不保证同步。
long beginTime = 0l;
long endTime = 0l;
StringBuffer buffer = new StringBuffer("");
beginTime = System.currentTimeMillis();
for(int i=0; i<20000; i++){
buffer.append(String.valueOf(i));
}
endTime = System.currentTimeMillis();
System.out.println("StringBuffer执行时间: " + (endTime-beginTime));
StringBuilder builder = new StringBuilder("");
beginTime = System.currentTimeMillis();
for(int i=0; i<20000; i++){
builder.append(String.valueOf(i));
}
endTime = System.currentTimeMillis();
System.out.println("StringBuilder执行时间: " + (endTime-beginTime));
String text = "";
beginTime = System.currentTimeMillis();
for(int i=0; i<20000; i++){
text = text + i;
}
endTime = System.currentTimeMillis();
System.out.println("String执行时间: " + (endTime-beginTime));
//测试我的循环间隔多长时间
//返回最准确的可用系统计时器的当前值,以毫微秒为单位。
long startTime = System.nanoTime();
System.out.println("开始起跑的时间是:" + startTime);
for (int i = 0; i < 100; i++) {
System.out.println("我已经跑了 " + i + "圈");
}
long endTime = System.nanoTime();
System.out.println("共花了" + (endTime-startTime) + "毫微秒");
java.util.Calendar类
calendar类是一个抽象类,主要用于完成日期字段之间相互操作的功能。
可以获取和设置日期数据的特定部分。
获取Calendar类实例方法有:
使用Calendar.getInstance()方法
或调用它的子类GregorianClendar的构造方法。
一个Calendar的实例是系统时间抽象的表示
可以同过这个实例上的get(int field)方法来获取想要的时间信息。
public int get(int field)方法根据给定的日历字段获得当前时间中国相应字段的值
//创建一个calendar对象
// Calendar icalendar = Calendar.getInstance();
Calendar icalendar = new GregorianCalendar();
//显示Date 和 Time的各个组成部分
System.out.println("Date 和 Time的各个组成部分:" );
System.out.println("年: " + (icalendar.get(Calendar.YEAR)));
//一年中的第一个月是JANUARY,它为0
System.out.println("月: " + (icalendar.get(Calendar.MONTH)));
System.out.println("日: " + (icalendar.get(Calendar.DATE)));
//Calendar的星期常数从星期日Calendar.SUNDAY是1
//到星期六Calendar.SATURDAY是7
System.out.println("星期: " + (icalendar.get(Calendar.DAY_OF_WEEK)));
System.out.println("小时: " + (icalendar.get(Calendar.HOUR_OF_DAY)));
System.out.println("分钟: " + (icalendar.get(Calendar.MINUTE)));
System.out.println("秒:" + (icalendar.get(Calendar.SECOND)));
//从一个Calendar对象中获取Date对象
Date date = icalendar.getTime();
//用给定的Date设置此Calendar的时间
icalendar.setTime(date);
icalendar.set(Calendar.DAY_OF_MONTH, 8);
System.out.println("当前时间日设置为8后,时间是:" + icalendar.getTime());
icalendar.add(Calendar.HOUR, 2);
System.out.println("当前时间加2小时后,时间是:" + icalendar.getTime());
icalendar.add(Calendar.MONTH, -2);
System.out.println("当前日期减2个月后,时间是:" + icalendar.getTime());