int、String、char、Array之间的转换,这一篇够了!!!
前段时间开始刷LeetCode上面的题目,想着数据结构不会,我先做做简单的算法题目吧。好家伙,拿到题目,发现最基础的数据类型转换都不知道,然后进入了小自闭。所以今天就集中整理了一下,最最最基础的四种数据格式的转换,帮助自己学习,也希望对你们有帮助!!!
文章目录
- 1、int与String转换
- 2、int与char转换
- 3、String与Array转换
- 4、String与char转换
- 5、其他
1、int与String转换
int变为String
int num = 1;
String str;//1.直接和空字符串相加
str = "" + num;//2.使用Integer的toString()方法
str = Integer.toString(num);//3.使用String的valueOf()方法
str = String.valueOf(num);
String变为int
//字符串一定要符合规范(数字型字符串),否则会抛出异常
String str = "33";
int num;//1.使用Integer的parseInt方法
int num = Integer.parseInt(str);//2.使用使用Integer的valueOf()方法,再将结果由Integer类型转变为int类型
int num = Integer.valueOf(str).intValue();
补充:对于String变为int的转换中的第二种方法,如果我们想使用对应数字的包装类(毕竟包装类Integer的功能比基本类型int的功能要多很多),就可以不需要直接去掉intValue()。
public static Integer valueOf(String s) throws NumberFormatException {return Integer.valueOf(parseInt(s, 10));
}
2、int与char转换
int变为char
//由于char只能占一位,所以num在0-9可转为字符型数字,再往上则为其他字符
int num = 1;
char c;//1.先加 '0' ,再强转为char
c = (char) (num + '0');//2.在ASCII表中,'0'和48等价
c = (char) (num + 48);
char变为int
char c ='3';
int num;//1.和上面的转换方式反着来,减去 '0',由于数据会自动向上转型,所以这里不需要强制转换
num = c-'0';//2.直接减去48
num = c-48;
补充:如果直接不减去48,就类似于两个数据在ASCII表中转换。'3’字符对应的ASCII转换为对应的同位置的数字。此处为51。
num = c;
ASCII表部分:
Bin(二进制) | Oct(八进制) | Dec(十进制) | Hex(十六进制) | 缩写/字符 | 解释 |
---|---|---|---|---|---|
0010 1111 | 057 | 47 | 0x2F | / | 斜杠 |
0011 0000 | 060 | 48 | 0x30 | 0 | 字符0 |
0011 0001 | 061 | 49 | 0x31 | 1 | 字符1 |
0011 0010 | 062 | 50 | 0x32 | 2 | 字符2 |
0011 0011 | 063 | 51 | 0x33 | 3 | 字符3 |
0011 0100 | 064 | 52 | 0x34 | 4 | 字符4 |
3、String与Array转换
String型数组
String变为Array
String str= "abc";//1.转换为char[]数组
char[] ch = str.toCharArray();//2.使用String.charAt(i)循环放入
char[] cha= new char[str.length()];
for(int i =0;i<str.length();i++) {cha[i] = str.charAt(i);
}
Array变为String
char[] chars ={'','','',''};
String str;//1.使用copyValueOf方法
str =String.copyValueOf(chars);//2.直接转换
str = String.valueOf(chars); //3.int型数组可以使用StringBuffer
int nums = {1,2,3,4,5,6};
StringBuffer str1 = new StringBuffer();
for (int i = 0; i <ints.length ; i++) {str = str.append(ints[i]);
}
str1 = str.toString();
补充:创建数组的三种方式
//1.动态创建,声明并创建内存空间,等待赋值。
int[] arr = new int[5];//2.动态创建,声明并创建内存空间,并赋值。
int[] a = new int[]{1, 2, 3, 4, 5};//3.属于静态创建,声明并直接赋值,创建内存空间。
int[] x = {1, 2, 3, 4, 5};
4、String与char转换
char变为String
char c = 'a';
String str;//1.建议使用该方法
str = String.valueOf(c); //2.其对应的底层就是方法1
str = Character.toString(c);//3.已过时,不建议使用
str = new Character(c).toString();//4.这是最方便的,但是效率是最低的
str = "" + c;
String变为char
char c;
String str = "a";//1.先将String字符串转换为数组,再
char[] charArray = str.toCharArray();
for(char c : charArray) {System.out.println(c);
}//2.直接遍历获取每一个元素
for (int i = 0; i < str.length(); i++) {c = str.charAt(i);
}
补充:如果String字符串只有一个或者只想获取首元素,那么我们可以直接打印str.charAt(0),或者str.toCharArray()[0]
5、其他
本文整理的更多的是Java数据类型本身的方法,而不是使用自己的逻辑运算去变化。如果你想让一个int类型的数字变成一个Array类型的数组,你可以直接new一个数组,然后将数组直接让进去。这偏向于简单的逻辑,不再本文的范围内。对于其它复杂点转换,你还可以转化两次,当然,个人觉得出现的几率比较小!!!
另外补充一个判断数据是什么类型的方法(利用反射的性值,获取对应数据的模板类型):
public class Test {public static void main(String[] args) {String str = "mobian";System.out.println(getType(str));}//判断数据是什么类型public static String getType(Object o) {return o.getClass().toString();}
}
int、String、char、Array之间的转换,这一篇够了!!!相关推荐
- VC之CString,wchar_t,int,string,char*之间的转换
VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...
- cstring转为string vc_VC之CString,wchar_t,int,string,char*之间的转换-阿里云开发者社区
VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...
- String类以及String与基本数据类型/char[]/byte[]之间的转换
String类: 1.String 声明为final的,不可被继承 2.String实现了Serializable接口:表示字符串是支持序列化的. 实现了Comparable接口:表示String可以 ...
- VC之CString,wchar_t,int,string,char*之间的转换方法
1. CString 转 wchar_t CString path = "asdf"; wchar_t wstr[256] = path.AllocSysString(); 或者: ...
- Timestamp、String、Date之间的转换
2019独角兽企业重金招聘Python工程师标准>>> 用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时 ...
- Java中long(Long)与int(Integer)之间的转换
文章目录 Java中long(Long)与int(Integer)之间的转换方式 一.将long型转化为int型,这里的long型是基础类型: 二.将Long型转换为int型,这里的Long型是包装类 ...
- string与byte[]之间的转换
在使用.NET加密类的时候,会经常用到string与byte[]之间的转换. 首先引用System.Text命名空间,然后 UnicodeEncoding unicode=new UnicodeEnc ...
- CString,int,string,char*之间的转换
<C++标准函数库>中说的 有三个函数可以将字符串的内容转换为字符数组和C-string 1.data(),返回没有"\0"的字符串数组 2,c_str() ...
- CString,int,string,char*之间的转换(转)
............................................................... <C++标准函数库>中说的 有三个函数可以将字符串的内容 ...
- MFCC中CString, int, string, char之间的转换
1. CString --> char* (1)传给未分配内存的指针 CString cstr ="ASDDSD"; char *ch =cstr.GetBuffe ...
最新文章
- 如何使用Spring Cloud实现高并发微服务设计
- Spring Cloud云服务架构 - common-service 项目构建过程
- 课堂上的社死现场...
- NYOJ 23 取石子
- python递归详解_python基于递归解决背包问题详解
- MATLAB基本操作(二):数组中操作
- CV之FR(H+k机器学习):基于每人几张人脸图片训练H+k模型实现(国内外明星)新人脸图像的姓名预测(准确度高达100%)
- 基于jmx监控kafka_0542-6.1.0-非安全环境下Kafka管理工具Kafka Eagle安装使用
- pandas标记一列为时间序列
- 给 VS2008 / VS2010 MFC 项目添加启动画面
- css就近原则_CSS的引入方式和优先级
- spark StandAlone模式下的作业提交流程
- 使用ietest来模拟ie6丢失session问题解决方法
- AssertionError: CUDA unavailable, invalid device 0 requested
- ASEMI整流二极管MR754参数,MR754图片,MR754应用
- 谁是你生命中最重要的人
- qt窗体设置圆角后出现黑色的直角
- java的double类型比较相等
- CAD安装失败,如何才能删除(卸载)CAD?三步完美卸载CAD软件
- 基于Java的网络爬虫实现抓取网络小说(一)
热门文章
- c语言键盘函数空格,C语言中关于scanf函数的用法
- 把php文件全改为html文件,怎么把动态的php文件转换成静态的html文件,html文件是php文件…...
- 梯度下降的线性回归用python_学习笔记:使用python 实现线性回归里的梯度下降...
- redis 获取类似key的所i有的值_高可用 Redis 分布式锁实施方案!
- mysql垂直分库_mysql垂直分库,水平分库,垂直分表,水平分表
- Python开胃菜(1):搭建开发环境
- [LeetCode] 350. 两个数组的交集 II intersection-of-two-arrays-ii(排序)
- 饮冰三年-人工智能-Python-27 Django Form组件
- PLSql不用安装Oracle客户端,实现远程连接
- Python 线程复习