Java中的进制转换十进制 - R进制R进制 - 十进制A进制 - B 进制例题1FROM 洛谷 B3619代码实现例题2FROM 洛谷 P2084join() 函数代码实现拓展 —— split() 函数十进制 - R进制步骤用 while 循环实现1.不断用十进制数 N 除以 R2.记录每次的余数可以用 StringBuilder自带翻转函数3.N 为 0 时退出循环4.将结果倒序输出R进制 - 十进制步骤 按权展开1.不断取 R 进制数 M 的最后一位2.和 Rx相乘之后累和3.M 为 0 时退出循环4.输出累和结果A进制 - B 进制先将 A 进制转十进制再将十进制转 B 进制例题1FROM 洛谷 B3619注意是B3619不是P代码实现importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinputnewScanner(System.in);intninput.nextInt();intxinput.nextInt();StringBuildersbnewStringBuilder();charss0;while(n0){intsn%x;if(s10)ss(char)(s-10A);elsess(char)(s0);sb.append(ss);n/x;}System.out.print(sb.reverse().toString());}}例题2FROM 洛谷 P2084join() 函数传入的参数必须是字符串类型的可以是动态字符串数组也可以直接传字符串返回一个字符串。比如System.out.print(String.join(,list));或String result String.join(-, 2026, 04, 02);但是要注意的是list数组中不可以有空NULL。如果想传入其他类型参数可以先转为字符串数组再使用。代码实现importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){ScannerinputnewScanner(System.in);intminput.nextInt();Stringninput.next();ListStringlistnewArrayList();for(inti0;in.length();i){charsn.charAt(i);if(s!0){intindexn.length()-1-i;list.add((s-0)*m^index);}}System.out.print(String.join(,list));}}拓展 —— split() 函数这个函数也属于String类也很有用想起来就在这讲一下吧。split() 函数的作用是将一个字符串按照指定的分隔符正则表达式切分成多个子字符串并返回一个字符串数组。只指定分隔符正则表达式public String[] split(String regex)指定分隔符 最大分割次数public String[] split(String regex, int limit)其中 regex 是正则表达式不是普通字符串。. 、*、、?、|、(、)、[、]、{、}等在正则中有特殊含义必须用 \ 转义才能当作普通字符使用。比如// 错误 ❌. 在正则中表示“任意字符”Stringip192.168.1.1;String[]badip.split(.);// 返回空数组// 正确 ✅需要转义String[]partsip.split(\\.);// 或使用字符类String[]partsip.split([.]);// 结果: [192, 168, 1, 1]其中 limit 的值也代表不同意思了解既可感觉竞赛用的不是很多。limit 值行为 0最多分割成limit段保留尾部空字符串 0分割所有可能部分自动去除尾部空字符串默认行为 0分割所有可能部分保留所有空字符串包括尾部