Deitel Java练习11版本14.8

时间:2019-01-13 13:56:23

标签: java

请帮助我,以正确回答以下问题。我已经用自己的小经验回答了这个问题,但是并没有完全回答这个问题。

14.8(标记电话号码)编写一个应用程序,以(555)555-5555的形式输入电话号码作为字符串。应用程序应使用String方法split来提取区号作为令牌,将电话号码的前三位数字作为令牌,并提取电话号码的后四位数字作为令牌。电话号码的七位数应串联成一个字符串。应该同时打印区号和电话号码。请记住,您必须在标记化过程中更改定界符。

import java.util.Scanner;

public class Tokenizing
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter Phone Number: ");
        int num = input.nextInt();
        String val = String.valueOf(num);
        String[] san = val.split("");
        for(int i = 0; i < san.length; i++)
        {
            System.out.print(san[i]);
            if(i == 2)
                System.out.print("-");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这可能有用,除了您不能将字符串读取为整数:如果输入parens等会出现运行时错误。您将必须修复输入逻辑。 您需要执行2个拆分方法。

import java.util.Scanner;

public class Tokenizing
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter Phone Number: ");
        int num = input.nextInt();
        String val = String.valueOf(num);
        String[] san = val.split(" "); // Split on the space
        // san[0] now has the area code, with the parens
        String areaCode = san[0].substring(1, 4);
        // areaCode now has the area code with parens removed
        // san[1] now has the xxx-yyyy part
        String[] san1 = san[1].split("-");
        // san1[0] now has the xxx part
        // san1[1] now has the yyyy part

    }
}