java String,Stringbuilder,Integer,character几种数据类型转换

目录

1 String类常用方法

1.String的构造方法

2.String类的获取功能:

3.String判断功能

4.String类中的转化方法:

5.其他常用方法

2 Integer类常用方法

3 StringBuilder常用方法

4 Character类的常用方法

5 数据转换方法

1 String与char转换

2 String与StringBuilder转换

3 String与int转换

4 int与char的互相转换

5 StringBuilder转换


1 String类常用方法

1.String的构造方法

1)String(String original):把字符串数据封装成字符串对象

2)String(char[] value):把字符数组的数据封装成字符串对象

3)String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象

2.String类的获取功能:

1)length():获取字符串的长度,其实也就是字符个数

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.length());

运行结果:
18

2)charAt(int index):获取指定索引处的字符

String str = "adsfaxsdfas沙发上案发地方";
		
char[] c = {'a','d','s','f','a'};
System.out.println(str.charAt(12));

运行结果:

3)indexOf(String str):获取str在字符串对象中第一次出现的索引

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.indexOf('a',5));

运行结果:
9

4)substring(int start):从start开始截取字符串

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.substring(1));

运行结果:
dsfaxsdfas沙发上发地方

5)String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.substring(1, 12));

运行结果:
dsfaxsdfas沙

3.String判断功能

1)equals(Object obj):比较字符串的内容是否相同

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.equals("adsfaxsdfas沙发上发地方"));
System.out.println(str.equals("adsfaxsdfas"));

运行结果:
true
false

2)equalsIgnoreCase(String anotherString):比较字符串的内容是否相同,忽略大小写

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.equalsIgnoreCase("ADsfaxsdfAs沙发上发地方"));

运行结果:
true

3)startsWith(String prefix):判断字符串对象是否以指定的字符开头(区分大小写)

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.startsWith("a"));
System.out.println(str.startsWith("A"));

运行结果:
true
false

4)startsWith(String prefix,int toffset):判断字符串对象是否以指定的字符开头,参数toffset为指定从哪个下标开始

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.startsWith("f", 3));
System.out.println(str.startsWith("f", 4));

运行结果:
true
false

5)endsWith(String str):判断字符串对象是否以指定的字符结尾

String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.endsWith("x"));
System.out.println(str.endsWith("方"));

运行结果:
false
true

6)isEmpty():判断指定字符串是否为空

7)startsWith(String prefix):判断字符串是否以指定字符开头

String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.startsWith("a"));

运行结果:
true

4.String类中的转化方法:

1)toCharArray():把字符串转换为字符数组

public static void main(String[] args) {
		
		String str = "adsfaxsdfas沙发上发地方";
		char arr[] = str.toCharArray();
		printArray(arr);
}
public static void printArray(char a[]) {
		
		for(int i=0;i<a.length;i++) {
			System.out.print(a[i]+"--");
		}
}

运行结果:
a–d--s–f--a–x--s–d--f–a--s–沙--发–上--发–地--方–

2)toLowerCase():把字符串转换为小写字符串

String str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println(str1.toLowerCase());

运行结果:
abcdefghijklmnopqrstuvwxyz

3)toUpperCase():把字符串转换为大写字符串

String str1 = "abcdefghijklmnopqrstuvwxyz";
System.out.println(str2.toUpperCase());

运行结果:
ABCDEFGHIJKLMNOPQRSTUVWXYZ

5.其他常用方法

1)trim():去除字符串两端空格

String str3 = "    a  c  e x u a n x u a n    ";
System.out.println(str3.trim());
System.out.println(str3);

运行结果:
a  c  e x u a n x u a n
    a  c  e x u a n x u a n   

2)split():去除字符串中指定的的字符,然后返回一个新的字符串

public static void main(String[] args) {
		
		String str = "adsfaxsdfas沙发上发地方";
		String array[] = str.split("a");
		printString(array);
}
public static void printString(String a[]) {
		for(int i=0;i<a.length;i++) {
			System.out.print(a[i]);
		}
}

运行结果:
dsfxsdfs沙发上发地方

3)subSequence(int beginIndex,int endIndex ):截取字符串中指定位置的字符组成一个新的字符串

String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.subSequence(1, 10));

运行结果:
dsfaxsdfa

4)replace(char oldChar, char newChar):将指定字符替换成另一个指定的字符

String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.replace('a', 's'));

运行结果:
sdsfsxsdfss沙发上发地方

2 Integer类常用方法

① parseInt(String s)方法

 

String year = "2018";
int i = Integer.parseInt(year);
System.out.println(i/2);//1009

② parseInt(String s,int radix)方法
解释:将字符串s按照radix进行转换相应的进制数,然后运行的结果都是以十进制的形式打印

String year = "1110";
String age = "A";
//指定year的进制为2进制
int i = Integer.parseInt(year,2);
//指定age的进制为16进制
int i2 = Integer.parseInt(age,16);    
System.out.println(i);//14
System.out.println(i2);//10

 

③ 任何类型+"" 变成String类型

int src = 3;
String dest = src + "";
System.out.println(dest+1);//31

 

④ toString()方法 
解释:Integer类中的静态方法toString()转换成字符串

int src = 50;
String dest = Integer.toString(src);
System.out.println(dest+1);//501

⑤ toString(int ,int 进制)
解释:将int整数转成指定的进制数

int src = 32;
//将int整数转换成指定的进制数
String dest = Integer.toString(src,2);    
System.out.println(dest);//100000

⑥ Integer valueOf(String s)方法 和 Integer valueOf(String s, int radix)方法
解释:返回保存指定的 String 的值的 Integer 对象。
解释:返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。

String age1 = "22";       
System.out.println(Integer.valueOf(age1));//22

总结:valueOf()与parseInt()区别

源码分析:

public static int parseInt(String s)
public static Integer valueOf(String s)
public static Integer valueOf(String s) throws NumberFormatException 
{ 
 
    return new Integer(parseInt(s, 10)); 
}

由源码知:valueOf()的内部其实就是调用了parseInt()方法

由源码知区别1:parseInt返回的是基本类型int,而valueOf返回的是对象
由源码知区别2:Integer.ValueOf()会比Integer.parseInt()多创建一个Integer对象
最后得出:从效率上考虑,建议首先考虑parseInt方法。

3 StringBuilder常用方法

一.append 的用法:实现字符串的连接,可接:String . Char

二 .toString 的用法:返回一个与构造器或缓冲器内容相同的字符串

三..CharAt(int Index):检索特定索引下的字符

四.setCharAt(int i,char c):将第i个代码单元设置为c

五.insert(int offset,String str/Char c):在指定位置前插入字符串或者字符

六.delete(int start,int end):删除包含起始位置但是不包含结尾位置之间的字符串

/**
 * 测试StringBulider
 * @author administrator
 *
 */
public class TestStringBuilder {
	public static void main(String[] args) {
		StringBuilder sb1 = new StringBuilder();
		
		//append:链接字符串或者字符
		System.out.println("StringBuilder:"+sb1.append("Hello").append('-'));
		//return	StringBuilder:Hello-
		
		//toString:返回一个与构造器或者缓冲器内容相同的字符串
		System.out.println("StringBuilder:"+sb1.toString());
		//return	StringBuilder:Hello-
		
		//CharAt:检索特定索引下的字符
		System.out.println("StringBuilder:"+sb1.charAt(0));
		//return	StringBuilder:H
 
		//setCharAt:将指定索引的字符设置为指定字符 (可理解为替换)
		sb1.setCharAt(sb1.length()-1, '+');
		System.out.println("StringBuilder:"+sb1);
		//return	StringBuilder:Hello+
		
		//insert:在指定索引前插入字符串/字符
		sb1.insert(5, "World");
		System.out.println("StringBuilder:"+sb1);
		//return	StringBuilder:Hello World+
		
		//delete:从初始位置start(包含)开始删除与i知道结束位置end(不包含)
		System.out.println("The fifth is:"+sb1.charAt(5));
		System.out.println("The eleventh is:"+sb1.charAt(10));
		sb1.delete(5, 10);
		System.out.println("StringBuilder:"+sb1);
		/*return 	The fifth is:W
					The eleventh is:+
					StringBuilder:Hello+*/
 
	}
}

4 Character类的常用方法

在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。 以确定字符的类别(小写字母,数字,等等)

构造方法:

public Character(char value)

构造一个新分配的 Character 对象,用以表示指定的 char 值

Character类的判断功能:

public static boolean isDigit(char ch)

确定指定字符是否为数字。


public static boolean isLetter(char ch)
 确定指定字符是否为字母。

public static boolean isLowerCase(char ch)
确定是否是小写字母字符

public static boolean isUpperCase(char ch)
确定是否大写字母字符

两个转换功能:

public static int toLowerCase(char ch)
使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。

public static int toUpperCase(char ch)

使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。

 

5 数据转换方法

1 String与char转换

//1.String类的toCharArray()方法,将字符串转为字符(char)数组 
String ss=”abc”; 
char[] cc; 
cc=ss.toCharArray(); 
这时cc={‘a’,’b’,’c’}; 
//2.String类的valueOf()方法,将字符(char)数组转换为字符串 

char[] cc={‘a’,’b’,’c’}; 
ss=String.valueOf(cc); 
这时ss=“abc”;
//3 创建新空间
String ss="abc";

char[] cc;
cc=ss.toCharArray();
String res=new String(cc);
System.out.println(res);//res="abc"

2 String与StringBuilder转换

String类与StringBuilder类的相互转换
1.String类转换为StringBuilder类

public class String12 {
    public static void main(String[] args){
        String s = "hello";
        StringBuilder sb = new StringBuilder(s);
        System.out.println(sb);
    }
}
2.StringBuilder类转换为String类
public class String12 {
    public static void main(String[] args){
        StringBuilder sb = new StringBuilder();
        sb.append("abc").append("efg");
        String s = sb.toString();
        System.out.println(s);
    }
}
StringBuilder sb = new StringBuilder();
for(int i = 0; i < a.length; i++)
sb.append(a[i]);

3 String与int转换

1 如何将字串 String 转换成整数 int?

A. 有两个方法:

1). int i = Integer.parseInt([String]); 或

i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue();

注: 字串转成 Double, Float, Long 的方法大同小异.

2 如何将整数 int 转换成字串 String ?

A. 有叁种方法:

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

注: Double, Float, Long 转成字串的方法大同小异.

4 int与char的互相转换

在引言中,我们可以看到,int类型是一个32位的数据类型,因为其位有符号数,所以,其取值范围为:-2^31 至 2^31 - 1。

char为16位的数据,为无符号数,其范围为:0 至 2 ^ 16 -1,即 0 - 65535,用十六进制码来看,则为:’\u0000’ - ‘\uffff’。

再从前面引言中对于ascii码的描述,我们可以看出,无论是什么字符,在计算机中,其实也是以数字(本质为一个二进制数)的形式存储的,因此,在java中,无论是一个字符,还是一个字符型变量,实则也是一个数字,所以,可以直接将一个(不超过char的范围的)数字赋值给一个char变量,即可输出其结果:

char c1 = 97;
System.out.println(c1);

输出:

a

可以看到,正确输出了97的ascii码所对应的字符:‘a’。

同样的,我们可以将一个字符赋值给一个int变量,因为字符也是一个数字嘛

int num1 = 'a';
System.out.println(num1);

输出:

97

甚至,我们可以将一个数字与一个字符在一个表达式中进行计算:

char c2 = 'a' + 1;
int num2 = 'a' + 1;
System.out.println("c2:          " + c2);
System.out.println("num2:        " + num2);
System.out.println("(char) num2: " + (char) num2);

输出:

c2:          b
num2:        98
(char) num2: b

因为字符’b’所对应的ascii码是98,比’a’所对应的97要大1,所以,将’a’加1之后,得到的便是字符’b’了。同时,将int型的num2直接进行强制转换,也可以得到所期望的’b’。

char数组转int

// 先转String,再转int
char nums[] = {'a','b','c'};
for (int i = 0; i < nums.length; i++) {
	int temp = Integer.parseInt(String.valueOf(nums[i]));
}

 int转char数组

// 先转String,再转char数组
int num = 9;
String str= String.valueOf(num);
char[] nums = str.toCharArray();

5 StringBuilder转换

字符数组->StringBuilder:

StringBuilder sb = new StringBuilder();
for(int i = 0; i < a.length; i++)
sb.append(a[i]);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值