Java char与String 相互转换

   今天晚上要被Java的char转String还有类数组烦死了,本来以为很简单的小程序,硬是写了1个多小时,可能是我最近太懒了,没有好好练习Java,所以反思一下。好了不废话了。看正文:

Java中char是一个基本类型,而String是一个引用类型。有时候我们需要在它们之间互相转换。

 

1.1String转换为char

在Java中将String转换为char是非常简单的。 
1. 使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char。 
2. 使用String.toCharArray()(返回值为char[])可以得到将包含整个String的char数组。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。

1.2char转换为String

将char转换为String大致有6种方法。总结如下:

1. String s = String.valueOf('c'); //效率最高的方法

2. String s = String.valueOf(new char[]{'c'}); //将一个char数组转换成String

3. String s = Character.toString('c');
// Character.toString(char)方法实际上直接返回String.valueOf(char)

4. String s = new Character('c').toString();

5. String s = "" + 'c';
// 虽然这个方法很简单,但这是效率最低的方法
// Java中的String Object的值实际上是不可变的,是一个final的变量。
// 所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。
// 而Java对使用+运算符处理String相加进行了方法重载。
// 字符串直接相加连接实际上调用了如下方法:
// new StringBuilder().append("").append('c').toString();


6. String s = new String(new char[]{'c'});

2.类数组使用

Point[] points=new Point[n];//Point是一个类
        for(int i=0;i

报错信息如下:

Exception in thread "main" java.lang.NullPointerException
at test.Main.zjd(Main.java:29)
at test.Main.main(Main.java:9)

分析:

Point[] points=new Point[n];//在定义完类数组后原以为可以直接用如上代码直接使用,但是报如上错误。
于是将29行设置成断点,开始Debug
运行到这里时我就发现了问题:

Java char与String 相互转换_第1张图片

在变量列表中发现points[0],points[1]的value都是null

猛的一看似乎没什么问题,但是仔细想想,数组中的每个元素都是一个对象啊,既然是对象我们没有对他进行分配空间(没有new)又怎么去使用呢。

修改后的代码:

    Point[] points=new Point[n];
        for(int i=0;i

 

转自:https://www.cnblogs.com/iAmSoScArEd/p/9762674.html

 

你可能感兴趣的:(Java,String,类)