如何删除字符串中问号 (?) 之后的尾随字符?

How do I remove trailing characters after Question mark(?) in a String?

我需要从下面的字符串中删除 2 之后的尾随字符

String a = "12?34567";

我预期的字符串输出应该是 12

我尝试了下面的 replaceAll 方法。但是没有用。

a.replaceAll("\?+$", ""));

请帮忙

您忘记在正则表达式中添加数字,您只是在检查问号的一个或多个实例。这应该可以实现您想要实现的目标。

String a = "12?34567";
System.out.println(a.replaceAll("\?\d*$", ""));

如果您只是想在评论中所述的第一个问号之后删除它们,您可以简单地执行

String a = "12??1?1231";
System.out.println(a.replaceAll("\?.*", ""));

不使用正则表达式,而是使用 indexOf:

final int index = orig.indexOf('?');
return index == -1 ? orig : orig.subString(0, index);

如果要保留问号原样,只需在上面的子字符串操作中将index加1即可。

    String a = "12?34567";
    String[] split = a.split("\?");
    System.out.println(split[0]);