【问题标题】:Creating a string from loop results in java从循环中创建字符串会导致 java
【发布时间】:2019-07-03 18:56:21
【问题描述】:

我需要能够将循环结果保存到一个字符串中,以便能够操纵用户输出。没有数组

我尝试在循环内转换为字符串,这没有多大意义。除非我采用另一种方法,否则我想不出另一种方法来保存结果。我不允许创建数组。

    public static void main(String[] args){
        Scanner input = new Scanner(System.in);

            System.out.print("Enter phone number: ");
            String number = input.nextLine();
            String phone ="";

            for (int i = 0; i < number.length(); i++){
                if (Character.isLetter(number.charAt(i)))
                    phone = getNumber(Character.toUpperCase(number.charAt(i)));
                else
                    number.charAt(i);
            }
            System.out.println("Your number is " + phone);              
    }


public static int getNumber(char uppercaseLetter){
        if (uppercaseLetter >= 'W' && uppercaseLetter <= 'Z')
            return 9;
        else if (uppercaseLetter >= 'T' && uppercaseLetter < 'W')
            return 8;
        else if (uppercaseLetter >= 'P' && uppercaseLetter < 'T')
            return 7;
        else if (uppercaseLetter >= 'M' && uppercaseLetter < 'P')
            return 6;
        else if (uppercaseLetter >= 'J' && uppercaseLetter < 'M')
            return 5;
        else if (uppercaseLetter >= 'G' && uppercaseLetter < 'J')
            return 4;
        else if (uppercaseLetter >= 'D' && uppercaseLetter < 'G')
            return 3;
        else 
            return 2;
    }
}

应该看起来像:即。 352-嘿-呼叫= "你的号码是 352-439-2255"

【问题讨论】:

  • 您需要添加到phone。我建议使用StringBuilder 并在循环中的字符上追加

标签: java string loops output letter


【解决方案1】:

实际上,对于每个字符,您都在寻找相应的字母或数字,但您不使用它,您需要将它们附加在一起。在 String 上使用 += 运算符,但由于它处于循环中以获得更好的性能,因此建议使用 StringBuilder

StringBuilder phone = new StringBuilder();
for (int i = 0; i < number.length(); i++){
    if (Character.isLetter(number.charAt(i))){
        phone.append(getNumber(Character.toUpperCase(number.charAt(i))));
    }else{
        phone.append(number.charAt(i));
    }
}

System.out.println("Your number is " + phone.toString());

【讨论】:

  • 感谢您的反馈。我不确定是否允许我使用 StringBuilder,因为它没有教给我们,也没有在文中提及。但是我可以尝试从您所写的内容中找到一些东西,因为这是一个很好的解决方案,只是我可能还不够先进,无法在我的作业中获得该命令,因此我为什么要寻求帮助。然而,我之前使用过连接运算符,我什至没有考虑过使用我的疏忽。再次感谢您!
  • 我只是想就代码与您联系。我按照建议将代码连接到字符串,它在循环内完美运行!我没有意识到我也需要对代码的“其他”部分做同样的事情。我又进行了几次测试,它是金色的!感谢您的帮助!我的程序使用 += 完美运行,并且没有我尚未学习的术语(我一个月前才开始编码 - 这里是新手)。
猜你喜欢
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
相关资源
最近更新 更多