将一个字符串转换为任意进制
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); //
测试方法,通过类名调用封装的方法
}
}
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); //
测试方法,通过类名调用封装的方法
}
}
相关文章推荐
- c函数实现将一个整数转为任意进制的字符串输出
- 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
- 转换成任意[2, 36]进制的字符串输出
- iOS 一个在UDP/TCP通信时,对16进制、10进制、NSData等数据之间的转换发送等处理的工具类库,一行代码将16进制字符串轻松转换成UDP需要的指令数据
- 习题 7.17 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
- 8、编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数, 然后打印出这个十进制整数对应的二进制形式。
- 递归 将一个十进制数转化为任意进制字符串
- 用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
- 将任意进制字符串转换为指定进制输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 设计算法把一个十进制的整数转换成二至九进制之间的任意进制输出
- 2.写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 使用数组,编写一个任意进制正整数转换为十进制的转换工具。
- 4.2题目: 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 给定任意的一个含数学运算符的字符串,求这个字符串转换成数学表达式的值。
- C++趣味编程算法//求一个十进制数转换为任意进制数
- 8.编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数