Java 小 知 识 点 小 结 ①
1、数字转换成字符串的方法
①通过String.valueOf(a)
int a = 123;
String s = String.valueOf(a);
System.out.println(s);
②通过Integer.toString(a)
int a = 123;
String s = Integer.toString(a);
System.out.println(s);
③通过 空字符串+要转换的数字,实现转化 (此方法最简单O(∩_∩)O)
int a = 123;
String s = "" + a ;
System.out.println(s);
2、格式化输出的方法
①System.out.printf()方法
具体格式和C语言类似,eg:
String str = "I love Java";
double pi = 3.1415926;
int n = 100;
// 与C语言类似,用"%"来表示格式化输出
System.out.printf("%s\n",str);
System.out.printf("%f\n",pi);
System.out.printf("%d\n",n);
①System.out.format()方法
格式与上述 System.out.printf() 方法类似 eg:
String str = "I love Java";
double pi = 3.1415926;
int n = 100;
// 与C语言类似,用"%"来表示格式化输出
System.out.format("%s\n",str);
System.out.format("%f\n",pi);
System.out.format("%d\n",n);
③利用Fomatter类
Java中所有的格式化功能都由java.util.Formatter类处理。当你创建一个Formatter对象时 ,需要向其构造器传递一些信息,告诉它最终的结果将向哪里输出。
个人理解这个和Scanner类的输出流是相对的。
import java.util.Formatter; //注意要导入Formatter
Formatter f = new Formatter(System.out);
String str = "I love Java";
double pi = 3.1415926;
int n = 100;
//下面代码格式与上述类似
f.format("%s\n",str);
f.format("%f\n",pi);
f.format("%d\n",n);
④利用 String.format()
eg:
String str = "I love Java";
double pi = 3.1415926;
int n = 100;
System.out.println(String.format("%s\n",str));
System.out.println(String.format("%f\n",pi));
System.out.println(String.format("%d\n",n));
最后上述四种方法输出结果如下
3、如何把一个字符数组转化为字符串
eg:
char[] chars = {'C','h','i','n','a'};
String str = new String(chars);
System.out.println(str);
也可以再加一点参数:
String str = new String(chars,1,2);
System.out.println(str);
其输出结果将为:hi
需要注意的一点:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了,如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类
4、字符串相关方法
①获取字符串长度的str.length()方法
String str = new String("China");
System.out.println(str.length());
②连接两个字符串的两种方法:
1)string1.concat(string2)
String string1 = "I love ";
String string2 = "China";
System.out.println(string1.concat(string2));
- 不过更简便的就是***直接***用 “+” 号了
String string1 = "I love ";
String string2 = "China";
System.out.println(string1 + string2); //输出结果与上述一致
③创建格式化字符串
废话不多说,详情看例子。eg:
String str;
int grade = 100;
int rank = 1;
str = String.format("我今天考试考了%d分,排名第%d名",grade,rank);
System.out.println(str);
④s.charAt(n)方法
返回字符串s位于n处的字符
String s = "China";
char ch = s.charAt(0);
System.out.println(ch);
⑤s1.compareTo(s2)方法
如果第一个字符和参数的第一个字符不等,结束比较,返回第一个字符的ASCII码差值。
如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至不等为止,返回该字符的ASCII码差值。
如果两个字符串不一样长,可对应字符又完全一样,则返回两个字符串的长度差值。
s1.compareToIgnoreCase(s2) 方法:忽略其中的大小写
⑥s1.copyValueOf(s2,n,m) 方法
简单理解,就是把一个字符数组s2转换成一个字符串,不过这个与上面那个功能更加牛逼的是,可以指定从字符数组的下标n开始,并且指定长度m,就是说,把字符数组s2 从下标 n 开始的m个字符连在一起并返回给s1,注意s1必须初始化,不能只有创建。
代码示例eg:
char[] Str1 = {'h', 'e', 'l', 'l', 'o', ' ', 'r', 'u', 'n', 'o', 'o', 'b'};
String Str2 = new String(Str1);
String Str3="";
Str3 = Str3.copyValueOf(Str1);
⑦字符串查找的两个方法:
1):从开头开始查找:s1.indexOf(String s)
2):从结尾开始查找:s1.lastIndexOf(String s) ps:当这里这s为空字符串 即 ""时,该返回值为字符串的长度,与s.length结果相同
eg:
String s = "abcdedcba";
int a = s.indexOf("a");
int b = s.lastIndexOf("a");
int c = s.lastIndexOf("");
int d = s.length();
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(c==d);
代码运行结果如下:
⑧获取字符串
s.substring(int beginIndex , int endIndex)
第一个参数为开始位置,第二个参数为结束位置,没有结束位置默认到结尾。
注意这里是 左开右闭,就是 [ 开始位置,结束位置 ),学过数学的都知道O(∩_∩)O
⑨去除空格,就是去除字符串两边的空白
**s.trim()**方法:
eg:
String str1 = " I love China";
String str2 = str1.trim();
System.out.println(str1);
System.out.println(str2);
代码运行结果如图:
⑩判断字符串的开始与结尾,与python中的类似
s.startsWith(String str) 用于判断 s 是否以 str 为前缀
s.endsWith(String str) 用于判断 s 是否以 str 为后缀
较为简单不进行举例