Java 字符串替换方法在android studio中不起作用

Java 字符串替换方法在android studio中不起作用,java,android,string,Java,Android,String,我不太清楚为什么我的话不会在android studio中被取代 private Calendar dateTime = Calendar.getInstance(); private SimpleDateFormat dateFormatter = new SimpleDateFormat("dd/MM/yyyy, EEE"); String dateFormat = dateFormatter.format(dateTime.getTime()); Butto

我不太清楚为什么我的话不会在android studio中被取代

    private Calendar dateTime = Calendar.getInstance();
    private SimpleDateFormat dateFormatter = new SimpleDateFormat("dd/MM/yyyy, EEE");
    String dateFormat = dateFormatter.format(dateTime.getTime());
    Button beginDate = (Button) findViewById(R.id.startDate);
    beginDate.setText("From     " + dateFormat);

    // Other codes removed for simplicity

    String beginD = beginDate.getText().toString().replace("From:     ", "");
    Log.d("Test", beginD); 
记录结果如下:

06-16 14:14:01.957 23893-23893/包装名称D/测试﹕ 从…起 2015年6月16日,星期二

您正在尝试替换From:但您只添加了From而没有:。

您正在尝试替换From:但您只添加了From而没有:。

在您输入的输入中,我看不到:,因此From:将不匹配。我建议使用更通用的模式:

replaceAll("From:?\\s+", "");
由于需要正则表达式,您可以要求可选:,后跟一个或多个空格。

在您输入的输入中,我看不到:,因此From:将不匹配。我建议使用更通用的模式:

replaceAll("From:?\\s+", "");
由于使用正则表达式,您可以要求可选:,后跟一个或多个空格。

在按钮文本中是no:。因此,您必须将botton的文本更改为:

beginDate.setText("From:     " + dateFormat);
或者你的正则表达式

String beginD = beginDate.getText().toString().replace("From     ", "");
在您的按钮中,文本为no:。因此,您必须将botton的文本更改为:

beginDate.setText("From:     " + dateFormat);
或者你的正则表达式

String beginD = beginDate.getText().toString().replace("From     ", "");

检查您的输出,它不包含发件人:它只包含发件人,不包含冒号。这可能会有所帮助。也不要在发件人之后提供空间:。尝试使用replaceFrom、.trim;检查您的输出,它不包含发件人:它只包含发件人,不包含冒号。这可能会有所帮助。也不要在发件人之后提供空间:。尝试使用replaceFrom、.trim;