首先,我有一个一维数组,我想把一维数组中的数字转换成三进制,反向存入二维数组中(例:9=100(3)存入数组中就是001)
我们先来看代码
int[] arr={2,2,2,9,7,7,7,6,6,6,0,0,0};
int len=arr.length;
char[][] k=new char[len][];
int maxlen=0;
for (int i=0;i<len;i++){
k[i]=new StringBuilder(Integer.toString(arr[1],3)).reverse().toString().toCharArray();
if (k[i].length>maxlen)
maxlen=k[i].length;//动态改变数组长度
}
介绍一下用到的方法:
char[] :toCharArray()
- char[] toChatArray():将字符串拆分成字符数组
StringBuilder
1、什么是StringBuilder ?
StringBuilder是字符串的缓冲区, 可以对字符串的操作提高效率(在堆内存)
2、 String跟StringBuilder的区别是?
String是一个不可改变的字符序列, StringBuilder是 可以改变的字符序列.
3、 StringBuilder怎么样提高效率的?
字符串的拼接: 每一次用+号串联的时候, 底层都会重新创建一个StringBuilder, 然后再通过append方法完成链接, 最后通过toString方法转换成字符串
4、有什么方法?
StringBuilder.append(任意类型):添加数据,并返回自身对象
StringBuilder.reverse():反转功能
5、StringBuilder和String的相互转换
- StringBuilder转 String
StringBuildersb = new StringBuilder();
sb.append("fanzhe");
Stringstr = sb.toString();
- String转StringBuilder
String s="sasdasda";
StringBuilder stringBuilder=new StringBuilder(s);
System.out.println(stringBuilder);
当我们再回来看这句话就清晰了:
k[1]=new StringBuilder(Integer.toString(6,3)).reverse().toString().toCharArray();
- Integer.toString(6,3):首先将6转换为三进制(100(3))
- StringBuilder().reverse():将三进制的6进行反转(001)
- toString():转换为字符串
- toCharArray();将反转后的字符串001进行拆分成字符数组存储到k[1]
欢迎大家留言交流,欢迎指教!