Java 数组
数组声明(首字母应该小写,第二个单词首字母大写)
声明形式:
一、int arrayName[];
二、int[] arrayName;
声明之后如果不为数组分配内存空间,则不能使用该数组
使用关键字new为其分配内存空间 arrayName = new int[3];
如果没有赋值则为默认值。int类型默认值为0,string类型默认值为空
动态初始化:① int arrayName[]; 或 int arrayName[]=null;
② arrayName = new int[3];
或 int array[ ] = new int[3];
静态初始化:不用关键字new为数组分配内存空间,直接为其赋值(声明+赋值)
int array[] = {1,2,3,4,5};
动态:int array[ ][ ] = new int[5][5];
静态:按排赋值
for (int i=0; i<array.length; i++){
for (int j=0; j<array[i].length; j++){ }
}
//第一维不加 [ ],第二维加 [ ]
Java String
直接赋值: String str = "hello";
(实例化)用关键字new:String str = new String("hello"); (String是个类)
(用new更耗内存)
String的比较:
数值的比较用==,a==b
字符串String的比较不用==,用 .equals(),str.equals(str1)
== 比较的是地址,.equals() 比较的是内容,用new创建字符串会有两个地址
字符串内容不可更改
看到的内容被更改了,其实没有更改
1. length ()
2. toCharArray ()
3. charAt ()
str.charAt (n):取出第 n+1 个字符
4. getBytes ()
把字符串转换为byte数组,byte bytes [ ] = str.getBytes();
5. indexOf () :检测字符串中是否有某个字符
str.indexOf ("某个字符")
返回一个bool类型,如果有,返回该字符的位置(索引:第n个字符,索引为 n-1)。如果没有,返回 -1
6. trim ()
StringBuffer
实例化:用new关键字
String 内容是不可更改的,每次看到String的内容更改,都是开辟了新的内存空间,耗资源
StringBuffer 是可以更改的
可以用 append() 方法为其添加内容:
StringBuffer stringb = new StringBuffer();
stringb.append("blabla"); // append("") 在后面增加 / 追加内容
System.out.println ( stringb.toString() ); //toString之后再打印
(创建 tell 方法)
而String是不可更改的
stringb.insert(插入的位置即索引,"插入的内容");
stringb.replace(开始替换的位置,要替换的最后一个位置,"替换的内容")
StringBuffer 类的应用
为什么有时候要用StringBuffer而不用String,String再更改次数多时很耗资源(开辟新空间)
String 可以 str = str + i ; // i 是int 变量,会自动以字符形式加上去
StringBuffer 只能 stringb. append(i) ; // 打印的时候需要打印 stringb. toString ()
StringBuilder 用法