您的位置:首页 > 其它

将一个字符串转换为任意进制

2017-07-31 15:21 253 查看
虽然Java提供了各种进制转换的方法,但作为初学者的我还是想自己写一个,下面为具体的代码,思路为将字符串(本质为字符数组)转换为字符数组,然后遍历,进行转换。

import java.util.ArrayList;

import java.util.List;

import org.junit.Test;

public class Change {

static List l = new ArrayList(); //
此list用于存储 字符的模

/**

* @param s
*            字符串
* @param a1
*            多少进制,一个整数
*/

public static void ab(String s, int a1) { //
需要转换的字符串和转换的进制

char[] a = s.toCharArray(); // 将传进来的字符串转换为char数组
int[] b = new int[a.length];
for (int i = 0; i < b.length; i++) {
b[i] = a[i]; // 将char转换为int

}
for (int i = 0; i < b.length; i++) { //
依次遍历字符数组
l = new ArrayList(); //
每到下一个字符,刷新list,防止结果叠加
while (b[i] != 0) {
int x = b[i] % a1;

if (x >= 10) {

l.add((char) (x - 10 + 'a')); //
通过asc码,写出16进制的特殊字符

}

else {

l.add((x));
} // 将普通数字添加到list集合中

b[i] = b[i] / a1; // 缩小被除数的值,直到为0

}
for (int j = l.size() - 1; j >= 0; j--) { //
通过for循环,倒叙输出list中的模,以得到相应的进制
System.out.print(l.get(j));
}
System.out.println(); //
一个字符输出完之后,换行进行下一个字符的计算

}

}

@Test
public void test() {

Change.ab("我", 10); //
测试方法,通过类名调用封装的方法
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  进制转换
相关文章推荐