关于String类和Integer类一些常用方法总结
前言
-
在开始介绍之前,先要说明一下这是本人个人知识总结,不代表适用于所有人知识盲区总结。这里也不是对源码进行分析,只讲述一些的个人比较常用方法和一些区别。
-
其次就是观看顺序,可以先从总结开始看起,如果全都知道,其他就不用看了。如果是觉得代码较多就从上到下慢慢看起。
关于String类
String类简介
首先要知道JAVA的八大基本数据类型之一的字符char,而String类就是对基本数据类型char进行封装使一个字符可以组成一个多个字符组。(详细实现步骤请查看源码,这里大致说明一下就是创建一个char类value[]数组进行操作)
String类常用方法
toCharArray()方法
toCharArray静态方法将String类转换成char类数组
String s = "123";
char a[] = s.toCharArray();
for(int i=0;i<s.toCharArray().length;i++){
System.out.print(a[i]+"\t");
if(i==s.toCharArray().length-1){System.out.println();}
}
charAt(int index)方法
charAt(int index)静态方法查看字符串第index+1个字符
String s = "123";
for(int i=0;i<s.length();i++){
System.out.print(s.charAt(i)+"\t");
if(i==s.length()-1){ System.out.println();}
}
indexOf(String str,int fromIndex)方法
indexOf(String str,int fromIndex)静态方法,如果找到返回下标,否则返回值-1
String s = "123";
System.out.println(s.indexOf("2",1));
关于Integer类
Integer类简介
简单介绍一下,Integer是对基本数据类型int的封装包装。Integer和int的区别在使用方面就是默认值,Integer默认值为null,int默认值为0;再者就是存储方面差异面向对象思想的Integer如果再new一个就是另一个对象,int则是直接储存数据。
public static void main(String[] args) {
int a=1;
int c=1;
Integer b= 1;
Integer d= new Integer(1);
System.out.println(a==c);
System.out.println(b==d);
}
Integer类常用方法
max和min方法
System.out.println(Integer.max(1,2));
System.out.println(Integer.min(1,2));
compare方法
System.out.println(Integer.compare(1,3));
System.out.println(Integer.compare(2,2));
System.out.println(Integer.compare(3,2));
总结相关相关代码
package com.test.Until7;
/**
* @author
* @create 2019-05-10
*/
public class Test {
/**
* 关于Integer类的相关知识
* 注意1如果Integer值为null是无法用toString转换成String的,详细请查看下面代码
* 注意2如果数据转换最好转好成基本数据类型int,本次复习针对Integer的相关内容
*/
public static void AboutInteger(){
//Integer提供两个int类型最大最小值。
Integer integer_Max=Integer.MAX_VALUE; //MAX值2^31-1,即int类的最大值
Integer integer_Min=Integer.MIN_VALUE; //MIN值-2^31-1,即int类的最小值
//int和Integer的区别
int a=1;
int c=1;
Integer b= new Integer(1);
Integer d= new Integer(1);
System.out.println(a==c); //true
System.out.println(b==d); //false
//定义一个测试用的值,用于测试Integer转换成String
Integer a1 = 100;
String b1 = a1+""; //方法1,这里要注意会生成了两个String对象(不推荐使用)
String c1 = a1.toString(); //方法2,调用Integer提供的toString方式,大致思路是将数据转换成char数组再组合String(前提是Integer不是null)
String d1 = String.valueOf(a1); //方法3,直接用String的静态方法转换,与方法1不同的是只产生一个对象(推荐使用方法,比较好用)
// System.out.println(b1+"的类型是"+b1.getClass().getName()+"\n"+
// c1+"的类型是"+c1.getClass().getName()+"\n"+
// d1+"的类型是"+d1.getClass().getName()); //显示转换好后的类型
//关于Integer类运算过程中的注意事项
Integer a2 = 100;
int b2 = 2;
// System.out.println(a2+b2+"\t"+a2*b2+"\t"+
// a2/b2+"\t"+a2%b2+"\t"+(a2-b2)); //Integer类型是可以和int类型进行加减乘除余除计算的(在Integer类不是null的情况下)
//max和min
System.out.println(Integer.max(1,2));
System.out.println(Integer.min(1,2));
//compare
System.out.println(Integer.compare(1,3));
System.out.println(Integer.compare(2,2));
System.out.println(Integer.compare(3,2));
}
/**
* 关于String类的相关知识
* 主要针对字符串String和基本类型字符char及String一些比较常用的方法
*/
public static void AboutString(){
//数据转换相关知识
String s = "123";
int i1 = Integer.parseInt(s); //方法1,用定义Integer提供的静态方法转换
int i2 = Integer.valueOf(s).intValue(); //方法2,先定义Integer类再转换成int类
System.out.println(i1+"\t"+i2);
//toCharArray静态方法将String类转换成char类数组
char a[] = s.toCharArray();
for(int i=0;i<s.toCharArray().length;i++){
System.out.print(a[i]+"\t");
if(i==s.toCharArray().length-1){System.out.println();}
}
//charAt(int index)静态方法查看字符串第index+1个字符
for(int i=0;i<s.length();i++){
System.out.print(s.charAt(i)+"\t");
if(i==s.length()-1){ System.out.println();}
}
//indexOf(String str,int fromIndex)静态方法,如果找到返回下标,否则返回值-1
System.out.println(s.indexOf("2",1));
}
/**
* 关于==和equals的区别
* 主要补充说明上述转换方法的区别及针对==,随便解释==和equals区别
*/
public static void Aboutequals(){
int a = 1;
Integer b = null;
String c = "null";
//访问储存地址是否一致,这里就不new一个新的对象展示区别,仅说明上述转换结果差异
System.out.println(c==String.valueOf(b)); //true
System.out.println(c==(b+"")); //false
System.out.println(c==String.valueOf(b)); //true
//因为是比较内容下面结构都是true
System.out.println(c.equals(String.valueOf(b)));
System.out.println(c.equals(b+""));
}
public static void main(String[] args) {
Aboutequals();
}
}