将字母按照拼音9键的规则转变为对应的数字,并按照电话号码xxx-xxxx形式组成输出

博客内容讲述了如何将字母和数字根据9键拼音规则转换成电话号码格式的数字串,处理过程中涉及到字符映射、去重和排序等操作。代码实现自认为无误,但在在线评测系统中未能通过,寻求问题所在。
摘要由CSDN通过智能技术生成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析:
由上述描述可知,可能出现的字符只能是ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,因此
事先定义一个String symbol保存这些字符,number及为对应规则,例如:ABC在上图中对应为2,则在symbol中ABC对应的下标,在number中刚好都是2(symbol中ABC对应的下标为0,1,2.而number中0,1,2下标对应的内容都是2)
然后先将“-”替换为“”(这个应该是null的意思),然后在输入的字符串result中寻找对应在symbol的下标,在拿着这个下标找对应的number,最后将其按照题目要求的格式拼接起来,在将每次拼接起来的字符串存到ArrayList里(此处注意题目要求,“去重”),在判断集合里是否已经有此元素了,若有就不再添加。在用Collections接口自带的排序方法排序后,迭代输出即可

以下是代码

import java.util.*;
public class Main{
   
    public static void main(String[] args){
   
        String symbol="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        String number="222333444555666777788899991234567890";
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()){
   
            int n=scanner.nextInt();
            ArrayList<String> arrayList=new ArrayList<String>();
            for(int i=0;i<n;i++){
   
                String str=scanner.next();
                str=str.replace("-","");
                String result="";
                for(int j=0;j<7;j++
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值