来自字符串的整数

时间:2014-10-21 22:36:56

标签: java

嘿,大家好,希望你能帮助我。 我试图从这段代码中获取所有整数,只留下信件并且在这里严重丢失

public class Tie {

    public static void main(String agrs[]){
        String fr = "4544FF";
        int yu = fr.length();
        System.out.print(yu);

    }

}

3 个答案:

答案 0 :(得分:1)

如果您只想从字符串中删除数字,请使用正则表达式并替换,使用正则表达式'd'可以过滤所有数字。

String fr = "4544FF";
fr = fr.replaceAll("\\d","");
//result should be that fr now is contains only "FF", because the digits have bee replaced with nothing.

我还没有对它进行过测试,但是如果我对正则表达式的一点经验对我有用,它应该可行。

答案 1 :(得分:0)

你可以做的是使用这个方法substring(int start,int final)。

public static void main(String agrs[]){
    String fr = "4544FF";

    String numbers= fr.substring(0, 4);
    String letters= fr.substring(4);

    System.out.println("It will shows 4544" + numbers);

    System.out.println("It will shows FF" + letters);

    int convertNumber = Integer.parseInt(numbers); //Convert to int

    System.out.println("" +convertNumber);

}

它只会显示数字4544。

我希望能解决你的问题。

答案 2 :(得分:-1)

试试这段代码

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Tie {

    public static void main(String agrs[]){
        Tie tie = new Tie();
        String fr = "4544FF";
        char[] strings = fr.toCharArray();
        List<Integer>integers = new ArrayList<Integer>();
        for(int i=0;i<strings.length;i++){
            if(tie.validationNumber(strings[i]+"")){
                integers.add(Integer.parseInt(strings[i]+""));
            }
        }
        for(Integer i:integers){
            System.out.println(i);
        }
    }

    public boolean validationNumber(String s){

        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(s);

        if (matcher.matches()) {
            return true;
        }
        return false;   
    }
}