【问题标题】:How to parse an int from a string java?如何从字符串java中解析一个int?
【发布时间】:2015-02-02 12:34:41
【问题描述】:

出于测试原因,我正在尝试从虚拟字符串中解析一个 int。字符串将是:

String numOfStudents = "Number of Students: 5";

我想解析这个字符串,确保它包含“学生人数”这一行并找出 int 值。

我怎样才能做到这一点?我需要将 int 值与另一个 int 值进行比较。

谢谢

【问题讨论】:

标签: java string parsing int


【解决方案1】:
    final String NUM_OF_STUDENTS = "Number of Students: ";

    String numOfStudents = "Number of Students: 5";
    int lastIndex = numOfStudents.lastIndexOf(NUM_OF_STUDENTS);

    if (lastIndex != -1){
        String number = numOfStudents.substring((lastIndex + (NUM_OF_STUDENTS.length())) , numOfStudents.length());
        Integer yourResultNumber = Integer.parseInt(number);
        System.out.println(yourResultNumber);
    }

【讨论】:

  • 如果字符串不包含“学生人数”,您的代码将引发异常
  • 从我的答案中复制修复并对其进行投票后。
  • 好吧,你的代码确实有一个异常,如果你考虑投票给我的答案,我会感谢你。
【解决方案2】:

由于 Integer 无法解析 String 值,它会抛出 NumberFormatException,因为需要输入数字,所以我建议您使用静态类型的 String,如下所示:

String numOfStudents = "Number of Students: 5";
String[] p = numOfStudents.split(":");

Integer i= Integer.parseInt(p[1].trim());
System.out.println(i);

因为,p[0] 包含字符串(标签),p[1] 包含其值。如果需要,您可以稍后使用它。

【讨论】:

    【解决方案3】:
    String numOfStudents = "Number of Students: 55546";
    int lastIndex = numOfStudents.lastIndexOf(" ");
    if(lastIndex > -1 && lastIndex+1 < numOfStudents.length()) {
    String num = numOfStudents.substring(lastIndex+1);
    System.out.println(Integer.parseInt(num));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多