Java 如何从字符串中删除整数部分?

Java 如何从字符串中删除整数部分?,java,selenium,Java,Selenium,我必须从列表[test,1.1test1,test,tsest]中删除1.1。我尝试了以下代码,但它不工作 List<String> li = new ArrayList<>(); for(WebElement el : element) { String str = el.getText(); if(str.contains("0-9")) { String intValue = str.

我必须从列表
[test,1.1test1,test,tsest]
中删除1.1。我尝试了以下代码,但它不工作

List<String> li = new ArrayList<>();
    for(WebElement el : element)
    {

        String str = el.getText();
        if(str.contains("0-9"))
        {
        String intValue = str.replace("[0-9]", " "); 
        li.add(intValue);
        }else
        {
            li.add(str);

        }
List li=new ArrayList();
for(WebElement el:element)
{
String str=el.getText();
如果(str.contains(“0-9”))
{
字符串intValue=str.replace(“[0-9]”,“”);
li.增加(价值);
}否则
{
添加(str);
}

您可以使用下面的正则表达式:

\\d*\\.?\\d+
输出:

jshell> String str = "1.1 some data"
str ==> "1.1 some data"

jshell> str = str.replaceAll("\\d*\\.?\\d+", "");
str ==> " some data"
说明:

\d - Any number 
* - 0 or more occurence
\. - Search for specific symbol .
? - zero or one occurence
+ - one or more occurence

您可以使用regex、Matcher、模式组合来完成,并将其全部放入某些集合中,在本例中列出:

public static void main (String[]args){

    List<Double> listOfNumbers = new ArrayList<>();

    Pattern p = Pattern.compile("\\d*\\.?\\d+");

    Matcher m = p.matcher("Here is a sample with 2.1 and others 1 3 numbers and they are less than number 12");
    while (m.find()) {
        listOfNumbers.add(Double.valueOf(m.group()));
    }

    for (double num :listOfNumbers) {
        System.err.println(num);

    }
}

希望这有帮助,

以下是您可以做的:

List<String> strValues = Arrays.asList("test", "1123.12345 test1",
            "test", "tsest"); // Storing all the values in the List
    List<String> li = new ArrayList<>(); // Creating a new list which will store the updated values of the string

    for (String str : strValues) { // Iterating through the list

        if (str.matches("^[0-9].*$")) { // Checking whether the string starts with a number
            String newString = str.replaceAll("[-+]?([0-9]*\\.[0-9]+)", ""); // This regular expression matches an optional sign, that is either followed by zero or more digits followed by a dot and one or more digits
            li.add(newString); // Adding new string in the list

        }

        else {
            li.add(str); //Adding the old string if the string doesn't start with a number
        }

    }

    for (String newValue : li) {
        System.out.println(newValue); // printing the list
    }

}
List strValues=Arrays.asList(“test”,“1123.12345 test1”,
“test”、“tsest”);//存储列表中的所有值
List li=new ArrayList();//创建一个新的列表,该列表将存储字符串的更新值
对于(stringstr:strValues){//遍历列表
if(str.matches(“^[0-9].*$”){//检查字符串是否以数字开头
String newString=str.replaceAll(“[-+]”?([0-9]*\\.[0-9]+)”,“”);//此正则表达式匹配可选符号,该符号后跟零或多个数字,后跟一个点和一个或多个数字
li.add(newString);//在列表中添加新字符串
}
否则{
li.add(str);//如果字符串不是以数字开头,则添加旧字符串
}
}
for(字符串newValue:li){
System.out.println(newValue);//打印列表
}
}

首先,您的代码无法编译。所以,在这里发布编译后的代码,而不是垃圾代码。它是特定于一种类型的数据还是基于某种模式?请向我们展示更多的数据,以便我们可以为您要删除的内容形成一个通用规则。@Ravi请现在查看代码。您可以解释一下此参数“\\d*\.?\\d+”的含义吗,下面是我使用contains方法查找整数部件列表li=new ArrayList()的代码;for(WebElement el:element){String str=el.getText();if(str.contains(“0-9”){String intValue=str.replace(“[0-9]”),“”);li.add(intValue);}else{li.add(str);}@YashodipPatil共享正则表达式将搜索任何整数或小数,并将其替换为“”我还更新了我回答中的正则表达式描述。请遵循以下链接:。当StackOverflow中有人帮助你时,接受答案是一种很好的礼仪,因为他们会抽出时间来解决你的问题。
List<String> strValues = Arrays.asList("test", "1123.12345 test1",
            "test", "tsest"); // Storing all the values in the List
    List<String> li = new ArrayList<>(); // Creating a new list which will store the updated values of the string

    for (String str : strValues) { // Iterating through the list

        if (str.matches("^[0-9].*$")) { // Checking whether the string starts with a number
            String newString = str.replaceAll("[-+]?([0-9]*\\.[0-9]+)", ""); // This regular expression matches an optional sign, that is either followed by zero or more digits followed by a dot and one or more digits
            li.add(newString); // Adding new string in the list

        }

        else {
            li.add(str); //Adding the old string if the string doesn't start with a number
        }

    }

    for (String newValue : li) {
        System.out.println(newValue); // printing the list
    }

}