如何删除字符串中问号 (?) 之后的尾随字符?
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]);
我需要从下面的字符串中删除 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]);