如何从除了android中的+之外的字符串中删除特殊字符?

时间:2017-04-24 11:40:47

标签: android

我从联系簿中提取号码并将其发送到服务器。我得到这样的数字(+ 91)942 80-60 135 但我想要这样的结果 +9428060135 。+必须是字符串编号的第一个字符。

3 个答案:

答案 0 :(得分:1)

根据您的示例,您希望用单个+字符替换前缀。您还想从数字字符串中删除其他非数字字符。以下是您可以这样做的方法:

String number = "(+91)942 80-60 135";
number = "+" + number.replaceAll("\\(\\+\\d+\\)|[^\\d]", "");

正则表达式匹配任何前缀(左边的paren后跟一个+后跟一个或多个数字,然后右边的paren)任何非数字字符,并删除它们。根据需要将其连接到前导+。此代码还将处理数字字符串中的+个字符,例如+9428060135++++(+91)9428060135+++

如果你只想删除任何不是数字或+的字符,代码将是:

String number = "(+91)942 80-60 135";
number = number.replaceAll("[^\\d+]", "");

但请注意,这将保留前缀中的数字,这与您的示例不同。

答案 1 :(得分:0)

您可以使用String.replace(oldChar, newChar)。使用以下代码

String phone = "(+91)942 80-60 135"; // fetched string
String  trimmedPhone = phone.replace("(","").replace(")","").replace("-","").trim();

我希望它对你有用。

答案 2 :(得分:-1)

检查一下。将您的字符串传递给此函数或按代码使用

String inputString =“(+91)942 80-60 135”;

Range(header.Offset(1, 0), header.End(xlDown)).Copy Destination:=ActiveWorkbook.Worksheets("Sheet2").Cells(2, GetHeaderColumn(header.Value))
'                                                                ^^^^^^^^^^^^^^