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

这篇博客介绍了一种自定义方法,用于将Java中的字符串转换为任意进制。作者通过创建一个方法`ab`,将输入的字符串转换为字符数组,然后遍历并进行转换。转换过程中,使用ArrayList存储字符的模,并通过模运算和ASCII码来处理不同进制下的数字和字母。最后,通过倒序输出ArrayList中的元素,完成进制转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然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); // 测试方法,通过类名调用封装的方法
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值