【问题标题】:Remove spaces from a integer - Java从整数中删除空格 - Java
【发布时间】:2013-11-17 03:14:15
【问题描述】:

如何将像“905 123 7023”这样的整数更改为像“9051237023”这样的整数。

作业应该判断输入的电话号码是否为真实电话号码。

我打算用这个:

int phoneNumber;
// Code that turns number with spaces into single number
try {
  System.out.println("Please input an integer");
  input = TextIO.getlnInt();
}

catch (InputMismatchException exception) {
  System.out.println("This is not an phone number");
}

确定代码

【问题讨论】:

  • 整数没有空格
  • 你不能输入带空格的整数。
  • Integer 如前所述 cmets 不能有空格。对于您的特定问题,您应该将输入作为String,然后从中删除空格。
  • 谢谢你告诉我你不能在代码中使用空格,我现在觉得很愚蠢:/
  • 如果这只是一个练习,可以只假设 10 位数的电话号码。如果是实际使用,则需要更灵活一些,并允许国家代码和扩展名。

标签: java string input number-formatting phone-number


【解决方案1】:
//import java.io.*;
//throws IOException 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int phoneNumber;
try {
    System.out.println("Please input an integer");
    String input = br.readLine();
    phoneNumber=Integer.parseInt(input.replaceAll(" ",""));
}

【讨论】:

    【解决方案2】:

    用户要输入的数据将是一个字符串(因为它可能包含空格,甚至可能是字母)。

    有几种方法可以去除字符串中的空格:

    1. 使用 split() 和 join() 分割空格并在没有空格的情况下加入
    2. 使用 indexOf() 查找空格,使用子字符串删除它们,然后迭代直到没有空格
    3. 迭代字符串的每个字符,用非空格字符构建一个新字符串
    4. 使用正则表达式
    5. 使用 replace()(感谢@David Wallace - 我完全忽略了明显的问题)

    【讨论】:

    • 还有最简单的——theString.replace(" ",""); 你只需要正则表达式来验证输入是否匹配正确的格式。
    • @David Wallace:你是对的 - 我已经编辑了我的答案。如果读者正在寻找相关的解决方案,希望该列表仍然有用。
    【解决方案3】:

    如果您想接受带有空格(或任何其他连字符、括号等)的电话号码输入,请以String 的形式开始阅读。然后对字符串进行操作,将其转换为可以代表long 的内容,并从中解析出long

    但鉴于这是一个电话号码,而且您可能不会用它做任何数学运算,为什么不将其保留为 String

    【讨论】:

    • 您可能会发现尝试将 10 位数字放入 int 中通常会导致完全不同的问题!
    • 是的,好点。但您可能只想将其保留为 String
    【解决方案4】:

    您必须将输入读取为字符串,验证其格式是否正确,然后删​​除空格(如果有的话)。使用正则表达式。

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 2014-01-12
      • 1970-01-01
      • 2016-06-04
      • 2011-11-10
      • 2011-07-24
      相关资源
      最近更新 更多