数据类型转换
2016-04-17 13:35
537 查看
/* * 需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来 * 需求2:我要求大家判断一个数据是否是int范围内的。 * * 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。 * byte Byte * short Short * int Integer * long Long * float Float * double Double * char Character * boolean Boolean * * 用于基本数据类型与字符串之间的转换。 */ public class IntegerDemo { public static void main(String[] args) { //int转换二进制 // public static String toBinaryString(int i) System.out.println(Integer.toBinaryString(100)); //int转换八进制 // public static String toOctalString(int i) System.out.println(Integer.toOctalString(100)); //int转换16进制 // public static String toHexString(int i) System.out.println(Integer.toHexString(100)); //取int最大值 // public static final int MAX_VALUE System.out.println(Integer.MAX_VALUE); //取int最小值 // public static final int MIN_VALUE System.out.println(Integer.MIN_VALUE); } }
输出:
1100100
144
64
2147483647
-2147483648
整数转换成字符串类型:
int n=10; String s=Integer.toString(n); System.out.println(s);
输出:
10
* Integer的构造方法:
* public Integer(int value)
* public Integer(String s)
* 注意:这个字符串必须是由数字字符组成
public class IntegerDemo { public static void main(String[] args) { // 方式1 int i = 100; Integer ii = new Integer(i); System.out.println("ii:" + ii); // 方式2 String s = "100"; // NumberFormatException // String s = "abc"; Integer iii = new Integer(s); System.out.println("iii:" + iii); } }
输出:
ii:100
iii:100
int和String互换
public class Test_2 { public static void main(String[] args) { // int -- String int number = 100; // 方式1 String s1 = "" + number; System.out.println("s1:" + s1); // 方式2 String s2 = String.valueOf(number); System.out.println("s2:" + s2); // 方式3 // int -- Integer -- String Integer i = new Integer(number); String s3 = i.toString(); System.out.println("s3:" + s3); // 方式4 // public static String toString(int i) String s4 = Integer.toString(number); System.out.println("s4:" + s4); System.out.println("-----------------"); // String -- int String s = "100"; // 方式1 // String -- Integer -- int Integer ii = new Integer(s); // public int intValue() int x = ii.intValue(); System.out.println("x:" + x); // 方式2 // public static int parseInt(String s) int y = Integer.parseInt(s); System.out.println("y:" + y); } }
输出:
s1:100
s2:100
s3:100
s4:100
-----------------
x:100
y:100
十进制数的相互转换
/* * 常用的基本进制转换 * public static String toBinaryString(int i) * public static String toOctalString(int i) * public static String toHexString(int i) * * 十进制到其他进制 * public static String toString(int i,int radix) * 由这个我们也看到了进制的范围:2-36 * 为什么呢?0,...9,a...z * * 其他进制到十进制 * public static int parseInt(String s,int radix) */ public class IntegerDemo { public static void main(String[] args) { // 十进制到二进制,八进制,十六进制 System.out.println(Integer.toBinaryString(100)); System.out.println(Integer.toOctalString(100)); System.out.println(Integer.toHexString(100)); System.out.println("-------------------------"); // 十进制到其他进制 System.out.println(Integer.toString(100, 10)); //10进制100转换为2进制数 System.out.println(Integer.toString(100, 2)); System.out.println(Integer.toString(100, 8)); System.out.println(Integer.toString(100, 16)); System.out.println(Integer.toString(100, 5)); System.out.println(Integer.toString(100, 7)); System.out.println(Integer.toString(100, -7)); System.out.println(Integer.toString(100, 70)); System.out.println(Integer.toString(100, 1)); System.out.println(Integer.toString(100, 17)); System.out.println(Integer.toString(100, 32)); System.out.println(Integer.toString(100, 37)); System.out.println(Integer.toString(100, 36)); System.out.println("-------------------------"); //其他进制到十进制 System.out.println(Integer.parseInt("100", 10)); System.out.println(Integer.parseInt("100", 2)); System.out.println(Integer.parseInt("100", 8)); System.out.println(Integer.parseInt("100", 16)); System.out.println(Integer.parseInt("100", 23)); //NumberFormatException //System.out.println(Integer.parseInt("123", 2));、、报错 //给出的数值应该在进制的范围内,例如2进制数字中没有2,3 } }
输出:
1100100
144
64
-------------------------
100
1100100
144
64
400
202
100
100
100
5f
34
100
2s
-------------------------
100
4
64
256
529
Integer 类
/* * JDK5的新特性 * 自动装箱:把基本类型转换为包装类类型 * 自动拆箱:把包装类类型转换为基本类型 * * 注意一个小问题: * 在使用时,Integer x = null;代码就会出现NullPointerException。 * 建议先判断是否为null,然后再使用。 */ public class IntegerDemo { public static void main(String[] args) { // 定义了一个int类型的包装类类型变量i // Integer i = new Integer(100); Integer ii = 100; ii += 200; System.out.println("ii:" + ii); // 通过反编译后的代码 // Integer ii = Integer.valueOf(100); //自动装箱 // ii = Integer.valueOf(ii.intValue() + 200); //自动拆箱,再自动装箱 // System.out.println((new StringBuilder("ii:")).append(ii).toString()); Integer iii = null; // NullPointerException if (iii != null) { iii += 1000; System.out.println(iii); } } }
ii=300
-128到127之间的数据缓冲池问题
/* * 看程序写结果 * * 注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据 */ public class Test_2 { public static void main(String[] args) { Integer i1 = new Integer(127); Integer i2 = new Integer(127); System.out.println(i1 == i2); System.out.println(i1.equals(i2)); System.out.println("-----------"); Integer i3 = new Integer(128); Integer i4 = new Integer(128); System.out.println(i3 == i4); System.out.println(i3.equals(i4)); System.out.println("-----------"); Integer i5 = 128; Integer i6 = 128; System.out.println(i5 == i6); System.out.println(i5.equals(i6)); System.out.println("-----------"); Integer i7 = 127; Integer i8 = 127; System.out.println(i7 == i8); System.out.println(i7.equals(i8)); // 通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间 // Integer ii = Integer.valueOf(127); } }
输出:
false
true
-----------
false
true
-----------
false
true
-----------
true
true
Character类
/* * Character 类在对象中包装一个基本类型 char 的值 * 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然 * * 构造方法: * Character(char value) */ public class CharacterDemo { public static void main(String[] args) { // 创建对象 // Character ch = new Character((char) 97); Character ch = new Character('a'); System.out.println("ch:" + ch); } }
a
/* * public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符 * public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符 * public static boolean isDigit(char ch):判断给定的字符是否是数字字符 * public static char toUpperCase(char ch):把给定的字符转换为大写字符 * public static char toLowerCase(char ch):把给定的字符转换为小写字符 */ public class CharacterDemo { public static void main(String[] args) { // public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符 System.out.println("isUpperCase:" + Character.isUpperCase('A')); System.out.println("isUpperCase:" + Character.isUpperCase('a')); System.out.println("isUpperCase:" + Character.isUpperCase('0')); System.out.println("-----------------------------------------"); // public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符 System.out.println("isLowerCase:" + Character.isLowerCase('A')); System.out.println("isLowerCase:" + Character.isLowerCase('a')); System.out.println("isLowerCase:" + Character.isLowerCase('0')); System.out.println("-----------------------------------------"); // public static boolean isDigit(char ch):判断给定的字符是否是数字字符 System.out.println("isDigit:" + Character.isDigit('A')); System.out.println("isDigit:" + Character.isDigit('a')); System.out.println("isDigit:" + Character.isDigit('0')); System.out.println("-----------------------------------------"); // public static char toUpperCase(char ch):把给定的字符转换为大写字符 System.out.println("toUpperCase:" + Character.toUpperCase('A')); System.out.println("toUpperCase:" + Character.toUpperCase('a')); System.out.println("-----------------------------------------"); // public static char toLowerCase(char ch):把给定的字符转换为小写字符 System.out.println("toLowerCase:" + Character.toLowerCase('A')); System.out.println("toLowerCase:" + Character.toLowerCase('a')); } }
输出:
isUpperCase:true
isUpperCase:false
isUpperCase:false
-----------------------------------------
isLowerCase:false
isLowerCase:true
isLowerCase:false
-----------------------------------------
isDigit:false
isDigit:false
isDigit:true
-----------------------------------------
toUpperCase:A
toUpperCase:A
-----------------------------------------
toLowerCase:a
toLowerCase:a
实例:
import java.util.Scanner; /* * 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符) * * 分析: * A:定义三个统计变量。 * int bigCont=0; * int smalCount=0; * int numberCount=0; * B:键盘录入一个字符串。 * C:把字符串转换为字符数组。 * D:遍历字符数组获取到每一个字符 * E:判断该字符是 * 大写 bigCount++; * 小写 smalCount++; * 数字 numberCount++; * F:输出结果即可 */ public class CharacterTest { public static void main(String[] args) { // 定义三个统计变量。 int bigCount = 0; int smallCount = 0; int numberCount = 0; // 键盘录入一个字符串。 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串:"); String line = sc.nextLine(); // 把字符串转换为字符数组。 char[] chs = line.toCharArray(); // 历字符数组获取到每一个字符 for (int x = 0; x < chs.length; x++) { char ch = chs[x]; // 判断该字符 if (Character.isUpperCase(ch)) { bigCount++; } else if (Character.isLowerCase(ch)) { smallCount++; } else if (Character.isDigit(ch)) { numberCount++; } } // 输出结果即可 System.out.println("大写字母:" + bigCount + "个"); System.out.println("小写字母:" + smallCount + "个"); System.out.println("数字字符:" + numberCount + "个"); } }
输出:
请输入一个字符串:
sdgf45sdfHFGR45HR
大写字母:6个
小写字母:7个
数字字符:4个
/* * 需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来 * 需求2:我要求大家判断一个数据是否是int范围内的。 * * 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。 * byte Byte * short Short * int Integer * long Long * float Float * double Double * char Character * boolean Boolean * * 用于基本数据类型与字符串之间的转换。 */ public class IntegerDemo { public static void main(String[] args) { //int转换二进制 // public static String toBinaryString(int i) System.out.println(Integer.toBinaryString(100)); //int转换八进制 // public static String toOctalString(int i) System.out.println(Integer.toOctalString(100)); //int转换16进制 // public static String toHexString(int i) System.out.println(Integer.toHexString(100)); //取int最大值 // public static final int MAX_VALUE System.out.println(Integer.MAX_VALUE); //取int最小值 // public static final int MIN_VALUE System.out.println(Integer.MIN_VALUE); } }
输出:
1100100
144
64
2147483647
-2147483648
整数转换成字符串类型:
int n=10; String s=Integer.toString(n); System.out.println(s);
输出:
10
* Integer的构造方法:
* public Integer(int value)
* public Integer(String s)
* 注意:这个字符串必须是由数字字符组成
public class IntegerDemo { public static void main(String[] args) { // 方式1 int i = 100; Integer ii = new Integer(i); System.out.println("ii:" + ii); // 方式2 String s = "100"; // NumberFormatException // String s = "abc"; Integer iii = new Integer(s); System.out.println("iii:" + iii); } }
输出:
ii:100
iii:100
int和String互换
public class Test_2 { public static void main(String[] args) { // int -- String int number = 100; // 方式1 String s1 = "" + number; System.out.println("s1:" + s1); // 方式2 String s2 = String.valueOf(number); System.out.println("s2:" + s2); // 方式3 // int -- Integer -- String Integer i = new Integer(number); String s3 = i.toString(); System.out.println("s3:" + s3); // 方式4 // public static String toString(int i) String s4 = Integer.toString(number); System.out.println("s4:" + s4); System.out.println("-----------------"); // String -- int String s = "100"; // 方式1 // String -- Integer -- int Integer ii = new Integer(s); // public int intValue() int x = ii.intValue(); System.out.println("x:" + x); // 方式2 // public static int parseInt(String s) int y = Integer.parseInt(s); System.out.println("y:" + y); } }
输出:
s1:100
s2:100
s3:100
s4:100
-----------------
x:100
y:100
十进制数的相互转换
/* * 常用的基本进制转换 * public static String toBinaryString(int i) * public static String toOctalString(int i) * public static String toHexString(int i) * * 十进制到其他进制 * public static String toString(int i,int radix) * 由这个我们也看到了进制的范围:2-36 * 为什么呢?0,...9,a...z * * 其他进制到十进制 * public static int parseInt(String s,int radix) */ public class IntegerDemo { public static void main(String[] args) { // 十进制到二进制,八进制,十六进制 System.out.println(Integer.toBinaryString(100)); System.out.println(Integer.toOctalString(100)); System.out.println(Integer.toHexString(100)); System.out.println("-------------------------"); // 十进制到其他进制 System.out.println(Integer.toString(100, 10)); //10进制100转换为2进制数 System.out.println(Integer.toString(100, 2)); System.out.println(Integer.toString(100, 8)); System.out.println(Integer.toString(100, 16)); System.out.println(Integer.toString(100, 5)); System.out.println(Integer.toString(100, 7)); System.out.println(Integer.toString(100, -7)); System.out.println(Integer.toString(100, 70)); System.out.println(Integer.toString(100, 1)); System.out.println(Integer.toString(100, 17)); System.out.println(Integer.toString(100, 32)); System.out.println(Integer.toString(100, 37)); System.out.println(Integer.toString(100, 36)); System.out.println("-------------------------"); //其他进制到十进制 System.out.println(Integer.parseInt("100", 10)); System.out.println(Integer.parseInt("100", 2)); System.out.println(Integer.parseInt("100", 8)); System.out.println(Integer.parseInt("100", 16)); System.out.println(Integer.parseInt("100", 23)); //NumberFormatException //System.out.println(Integer.parseInt("123", 2));、、报错 //给出的数值应该在进制的范围内,例如2进制数字中没有2,3 } }
输出:
1100100
144
64
-------------------------
100
1100100
144
64
400
202
100
100
100
5f
34
100
2s
-------------------------
100
4
64
256
529
Integer 类
/* * JDK5的新特性 * 自动装箱:把基本类型转换为包装类类型 * 自动拆箱:把包装类类型转换为基本类型 * * 注意一个小问题: * 在使用时,Integer x = null;代码就会出现NullPointerException。 * 建议先判断是否为null,然后再使用。 */ public class IntegerDemo { public static void main(String[] args) { // 定义了一个int类型的包装类类型变量i // Integer i = new Integer(100); Integer ii = 100; ii += 200; System.out.println("ii:" + ii); // 通过反编译后的代码 // Integer ii = Integer.valueOf(100); //自动装箱 // ii = Integer.valueOf(ii.intValue() + 200); //自动拆箱,再自动装箱 // System.out.println((new StringBuilder("ii:")).append(ii).toString()); Integer iii = null; // NullPointerException if (iii != null) { iii += 1000; System.out.println(iii); } } }
ii=300
-128到127之间的数据缓冲池问题
/* * 看程序写结果 * * 注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据 */ public class Test_2 { public static void main(String[] args) { Integer i1 = new Integer(127); Integer i2 = new Integer(127); System.out.println(i1 == i2); System.out.println(i1.equals(i2)); System.out.println("-----------"); Integer i3 = new Integer(128); Integer i4 = new Integer(128); System.out.println(i3 == i4); System.out.println(i3.equals(i4)); System.out.println("-----------"); Integer i5 = 128; Integer i6 = 128; System.out.println(i5 == i6); System.out.println(i5.equals(i6)); System.out.println("-----------"); Integer i7 = 127; Integer i8 = 127; System.out.println(i7 == i8); System.out.println(i7.equals(i8)); // 通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间 // Integer ii = Integer.valueOf(127); } }
输出:
false
true
-----------
false
true
-----------
false
true
-----------
true
true
Character类
/* * Character 类在对象中包装一个基本类型 char 的值 * 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然 * * 构造方法: * Character(char value) */ public class CharacterDemo { public static void main(String[] args) { // 创建对象 // Character ch = new Character((char) 97); Character ch = new Character('a'); System.out.println("ch:" + ch); } }
a
/* * public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符 * public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符 * public static boolean isDigit(char ch):判断给定的字符是否是数字字符 * public static char toUpperCase(char ch):把给定的字符转换为大写字符 * public static char toLowerCase(char ch):把给定的字符转换为小写字符 */ public class CharacterDemo { public static void main(String[] args) { // public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符 System.out.println("isUpperCase:" + Character.isUpperCase('A')); System.out.println("isUpperCase:" + Character.isUpperCase('a')); System.out.println("isUpperCase:" + Character.isUpperCase('0')); System.out.println("-----------------------------------------"); // public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符 System.out.println("isLowerCase:" + Character.isLowerCase('A')); System.out.println("isLowerCase:" + Character.isLowerCase('a')); System.out.println("isLowerCase:" + Character.isLowerCase('0')); System.out.println("-----------------------------------------"); // public static boolean isDigit(char ch):判断给定的字符是否是数字字符 System.out.println("isDigit:" + Character.isDigit('A')); System.out.println("isDigit:" + Character.isDigit('a')); System.out.println("isDigit:" + Character.isDigit('0')); System.out.println("-----------------------------------------"); // public static char toUpperCase(char ch):把给定的字符转换为大写字符 System.out.println("toUpperCase:" + Character.toUpperCase('A')); System.out.println("toUpperCase:" + Character.toUpperCase('a')); System.out.println("-----------------------------------------"); // public static char toLowerCase(char ch):把给定的字符转换为小写字符 System.out.println("toLowerCase:" + Character.toLowerCase('A')); System.out.println("toLowerCase:" + Character.toLowerCase('a')); } }
输出:
isUpperCase:true
isUpperCase:false
isUpperCase:false
-----------------------------------------
isLowerCase:false
isLowerCase:true
isLowerCase:false
-----------------------------------------
isDigit:false
isDigit:false
isDigit:true
-----------------------------------------
toUpperCase:A
toUpperCase:A
-----------------------------------------
toLowerCase:a
toLowerCase:a
实例:
import java.util.Scanner; /* * 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符) * * 分析: * A:定义三个统计变量。 * int bigCont=0; * int smalCount=0; * int numberCount=0; * B:键盘录入一个字符串。 * C:把字符串转换为字符数组。 * D:遍历字符数组获取到每一个字符 * E:判断该字符是 * 大写 bigCount++; * 小写 smalCount++; * 数字 numberCount++; * F:输出结果即可 */ public class CharacterTest { public static void main(String[] args) { // 定义三个统计变量。 int bigCount = 0; int smallCount = 0; int numberCount = 0; // 键盘录入一个字符串。 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串:"); String line = sc.nextLine(); // 把字符串转换为字符数组。 char[] chs = line.toCharArray(); // 历字符数组获取到每一个字符 for (int x = 0; x < chs.length; x++) { char ch = chs[x]; // 判断该字符 if (Character.isUpperCase(ch)) { bigCount++; } else if (Character.isLowerCase(ch)) { smallCount++; } else if (Character.isDigit(ch)) { numberCount++; } } // 输出结果即可 System.out.println("大写字母:" + bigCount + "个"); System.out.println("小写字母:" + smallCount + "个"); System.out.println("数字字符:" + numberCount + "个"); } }
输出:
请输入一个字符串:
sdgf45sdfHFGR45HR
大写字母:6个
小写字母:7个
数字字符:4个
相关文章推荐
- 20145233韩昊辰 第七周总结
- JS 利用正则表达式替换字符串
- 桌面web
- A*算法
- nginx之location配置
- 数组排序与查找
- 平衡二叉树
- 2016.0417
- StringBuffer_StringBuilder
- Android View System概论
- Hbase配置安装
- TCP/IP(一):TCP/IP协议简单介绍
- Python数据可视化编程实战——导入数据
- leetCode: 求最大子段和,最大子段乘积,求除了其本身之外的其他数的乘积
- web新手上路
- Java_String
- Hadoop学习笔记(2)-搭建Hadoop本地模式
- 学习进度博客七
- java基础知识拾遗(三)
- Eclipse使用相关