Java基础---StringBuffer
来源:互联网 发布:阿里云ces加内存 编辑:程序博客网 时间:2024/06/05 20:54
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1:StringBuffer
(1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了
一个字符串缓冲区类。StringBuffer供我们使用。
(2)StringBuffer的构造方法
A:StringBuffer()
B:StringBuffer(int size)
C:StringBuffer(String str)
(3)StringBuffer的常见功能(自己补齐方法的声明和方法的解释)
A:添加功能
B:删除功能
C:替换功能
D:反转功能
E:截取功能(注意这个返回值)
(4)StringBuffer的练习(做一遍)
A:String和StringBuffer相互转换
String -- StringBuffer
构造方法
StringBuffer -- String
toString()方法
B:字符串的拼接
C:把字符串反转
D:判断一个字符串是否对称
(5)面试题
小细节:
StringBuffer:同步的,数据安全,效率低。
StringBuilder:不同步的,数据不安全,效率高。
A:String,StringBuffer,StringBuilder的区别
B:StringBuffer和数组的区别?
(6)注意的问题:
String作为形式参数,StringBuffer作为形式参数。
2:数组高级以及Arrays(掌握)
(1)排序
A:冒泡排序
相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。
public static void bubbleSort(int[] arr) {
for(int x=0; x<arr.length-1; x++) {
for(int y=0; y<arr.length-1-x; y++) {
if(arr[y] > arr[y+1]) {
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
B:选择排序
把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。
public static void selectSort(int[] arr) {
for(int x=0; x<arr.length-1; x++) {
for(int y=x+1; y<arr.length; y++) {
if(arr[y] < arr[x]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
(2)查找
A:基本查找
针对数组无序的情况
public static int getIndex(int[] arr,int value) {
int index = -1;
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
index = x;
break;
}
}
return index;
}
B:二分查找(折半查找)
针对数组有序的情况(千万不要先排序,在查找)
public static int binarySearch(int[] arr,int value) {
int min = 0;
int max = arr.length-1;
int mid = (min+max)/2;
while(arr[mid] != value) {
if(arr[mid] > value) {
max = mid - 1;
}else if(arr[mid] < value) {
min = mid + 1;
}
if(min > max) {
return -1;
}
mid = (min+max)/2;
}
return mid;
}
(3)Arrays工具类
A:是针对数组进行操作的工具类。包括排序和查找等功能。
B:要掌握的方法(自己补齐方法)
把数组转成字符串:
排序:
二分查找:
(4)Arrays工具类的源码解析
(5)把字符串中的字符进行排序
举例:
"edacbgf"
得到结果
"abcdefg"
3:Integer(掌握)
(1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
(2)Integer的构造方法
A:Integer i = new Integer(100);
B:Integer i = new Integer("100");
注意:这里的字符串必须是由数字字符组成
(3)String和int的相互转换
A:String -- int
Integer.parseInt("100");
B:int -- String
String.valueOf(100);
(4)其他的功能(了解)
进制转换
(5)JDK5的新特性
自动装箱 基本类型--引用类型
自动拆箱 引用类型--基本类型
把下面的这个代码理解即可:
Integer i = 100;
i += 200;
(6)面试题
-128到127之间的数据缓冲池问题
String:
StringBuffer:
StringBuilder:
冒泡排序
选择排序
二分查找
重点:
一定要写的
1.冒泡,选择排序,二分查找,各写两遍,原理理解下
2.把总结上的案例写一遍,看一遍总结
A:String和StringBuffer相互转换
B:字符串的拼接
C:把字符串反转
D:判断一个字符串是否对称
package itcast_01;
public class Demo {
/**
* /** 统计大串中小串出现的次数 举例:在字符串”
* woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中
* java出现了5次
*
* 分析: 1.定义统计变量 int count = 0; 2.在大串中找小串, int index = str.indexOf("java");
* 3.比较 找不到(index == -1) return count; 找到了(index != -1) count++; str =
* str.substring(index + 4); 重复2
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
// 定义统计变量
int count = 0;
while (true) {
// 在大串中找小串
int index = str.indexOf("java");
// 比较
if (index != -1) { // 不等于-1 就是说明找到了 Java
count++;
// 截取大串,将截取后的新串赋值给大串;
str = str.substring(index + 4);
} else { // 找不到。
break;
}
}
System.out.println("大串中子串出现了"+count+"次");
}
}
======================================================================
package cn.itcast_me;
public class SelectSort {
/**
* /选择排序, 从0索引开始,单挑剩下的每一个.
* 第一轮:从从0索引开始,单挑剩下的每一个.
* 第二轮:从从1索引开始,单挑剩下的每一个.
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个数组,是你测试用的。
int[] arr = {2,13,5,9,16,7,29,53,18};
//调用排序方法功能,实现排序。
selectSort(arr);
}
public static void printarr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static void selectSort(int[] arr) {
printarr(arr);
//要进行arr.length-1次。
for (int j = 0; j < arr.length-1; j++) {
// 第一轮:从0索引开始,单挑剩下的每一个.
for (int i = j+1; i < arr.length; i++) {
if (arr[i]<arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
printarr(arr);
}
}
}
=================================================================
package cn.itcast_me;
public class bubbleSort {
public static void main(String[] args) {
// TODO 冒泡排序
int[] arr = {24, 69, 80, 57, 13};
bubblesort(arr);
}
private static void bubblesort(int[] arr) {
for (int j = 0; j < arr.length-1; j++) {
for (int i = 0; i < arr.length-1; i++) {
if (arr[i]>arr[i+1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
printarr(arr);
}
}
public static void printarr (int[] arr) {
// TODO Auto-generated method stub
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
==================================================================
package cn.itcast_me;
public class SortDemo {
/**
*
* 把字符串中的字符进行排序。
* 举例:”dacgebf”
* 结果:”abcdefg”
*
*/
public static void main(char[] args) {
// TODO Auto-generated method stub
String arr = "dacgebf";
System.out.println(arr);
char[] chr = arr.toCharArray();// 把arr变成字符数组,用chr接受。
sort(chr);
}
public static void printArr(char[] chr) {
for (int i = 0; i < chr.length; i++) {
System.out.print(chr[i]);
}
System.out.println();
}
public static void sort(char[] chr) {
// TODO Auto-generated method stub
for (int i = 0; i < chr.length-1; i++) {
for (int j = i+1; j < chr.length; j++) {
if (chr[j]<chr[i]) {
char temp = chr[j];
chr[j] = chr[i];
chr[i] = temp;
}
}
printArr(chr);
}
}
}
1.Arrays类
Arrays.toString(int[])//数组拼接字符串
任意类型---->字符串
任意类型 + ""
String.valueOf(任意类型);
String---->int
int i = Integer.parseInt(String);
2.正则表达式
String类的方法:
matches(regex);
split(regex);
replaceAll(regex,"*");
3.Math类
ceil
floor()
round()
4.Date类
5.Calendar
DateFormat
SimpleDateFormat
6.BigInteger
7.BigDecimal
重点:
案例: 有一个字符串:”91 27 46 38 50”
写代码输出结果是 :”27 38 46 50 91”
SimpleDateFormat
解析和格式化都要会写
Date类
Calendar(日历类)
getInstance()
set()
get(int)
add(int,int);
正则表达式(别人写好的,你会用即可,然后能大体看懂正则的意思)
要知道BigInteger和BigDecimal有什么用??
0 0
- JAVA基础之StringBuffer
- Java基础----StringBuffer
- Java基础---StringBuffer
- JAVA基础--db13_java_String&StringBuffer
- 11 Java基础 StringBuffer
- Java基础--String、StringBuffer
- StringBuffer--Java基础059
- java基础<StringBuffer>
- 黑马程序员-java基础 StringBuffer
- 【Java基础】String,StringBuffer, StringBuilder
- 【CXY】JAVA基础 之 StringBuffer
- java基础之StringBuffer类
- java基础<String-StringBuffer-StringBuilder>
- java基础---StringBuilder 和 StringBuffer
- Java基础 String StringBuffer StringBuilder
- java基础--StringBuffer pk String
- Java基础day13 StringBuffer类
- java基础-Stringbuffer转义字符
- SQO2008配置管理工具服务显示远程过程调用失败
- GDataXMLNode
- HDU 1021.Fibonacci Again【规律】【不可直接求】【8月18】【记录】
- 可重入函数与不可重入函数
- (转)四种方案解决ScrollView嵌套ListView问题
- Java基础---StringBuffer
- HDOJ--1869--六度分离(用三种算法写的,希望能比较出来他们之间的区别)
- 高仿知乎日报(五)
- python *和**
- HDU-5402 Travelling Salesman Problem(模拟)
- hdu 2059 龟兔赛跑
- Java深度历险(五)Java泛型
- 指针和引用区别(More Effective_C++_1(基础))
- winform通过https与服务器进行通信