字符串是不变的
String类是不可变类,一个String对象被创建以后,包含这个对象中的字符串序列是不可改变的。
比较字符串
equals函数比较内容
String a = "a";
String str1 = "java";
String str2 = "jav" + a;
System.out.println(str1.equals(str2));
//true
==是比较是否引用同一对象 >当我们使用直接赋值的方法对String进行赋值的时候,首先会看值是否在常量池中存在。如果存在的话,就会直接分配。否则才会在常量池中开辟一个空间来放值。之后才会在栈中分配内存来存放地址 >而如果我们使用new String("")的方法来赋值的话,实际上不仅会去常量池中寻找是否存在这样一个数,还会在堆空间和栈中开辟一部分内存去存储地址值 ``` String str1 = "java"; String str2 = "java"; System.out.println(str1 == str2); ``` 在这个实现过程中,由于str2的值已经出现在了变量池中,即可以引用相同的对象。 ```java String str3 = "java"; String str4 = new String("java"); System.out.println(str4 == str3); //false ``` 上述情况由于new的对象所开辟的地址不只是在变量池中,而且也出现在堆空间中。所以应该出现false
字符串长度与求单个字符与连接
concat方法用于连接两个字符串,而且返回的是一个新的字符串。或者直接用"+"号。
String a = "a";
String str1 = "java";
String str2 = "jav" + a;
System.out.println(str2 == str1);
false,因为返回的是新的字符串
字符串长度.length函数
charAt(int index)寻找字符
截取子串
subString函数:
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)
基本数据类型和字符串间的转换
- char与String
String.toCharArray()(返回值为char[])可以将String转换成字符数组
toString() (返回值为String) 可以将char转换成字符串 - String与封装类的静态方法
Boolean boolean1 = Boolean.parseBoolean(a);
int in1 = Integer.parseInt(a);
double double1 = Double.parseDouble(a);
long long1 = Long.parseLong(a);
## 命令行参数 命令行参数将传递给main方法的args参数,args可以是你在运行程序的时候赋予的。(当通过命令行运行程序的时候,虚拟机会将Java命令行之后的数据作为字符数组传递给main方法的args数组中)
文件类 java.io
File对象表示文件系统中的文件或路径。File f = new File(“file.txt”);表示一种对象与文件的一种关联
PrintWriter可以将File的实例对象赋给PrintWriter类,然后可以用print进行打印