如何从java中的字符串中去掉字符串?

时间:2013-09-18 07:32:50

标签: java regex string strip

我正在编写一个接受字符串的方法,该字符串只是java属性/字段声明,只返回属性名称。 e.g:

private double d = 1000;
private boolean b;
private final int f = 100;
private char c = 'c';

因此,如果参数是上述之一,则该方法应仅返回d,b,f或c。如何实现算法。我曾尝试使用正则表达式来删除类型之后的单词,但它变得非常复杂。任何人都可以给我一些线索,谢谢

2 个答案:

答案 0 :(得分:1)

试试这个

    String type = str.replaceAll(".*\\s(.)\\s*=.*", "$1");

答案 1 :(得分:1)

你可以在等号之前取字符串而不用正则表达式:

public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    while(true){
        String theString = sc.nextLine();
        String left = theString.split("=")[0].trim(); // Split into variable part and value part
        int lastSpace = left.lastIndexOf(" "); // there must be a space before a variable declaration, take the index
        String variableName = left.substring(lastSpace+1); // take the variable name
        System.out.println(variableName);
    }
}

如果你在Python上实现它,那就容易多了:

the_string = 'private double d = 1000;'
print the_string.split('=',1)[0].strip().rsplit(' ',1)[1]