如何删除字符串的第一个和最后一个字符?

Sam*_*mar 65 java string

我使用SOAP消息从Webservice获取LoginToken,并将LoginToken存储在String中并用于System.out.println(LoginToken);打印.打印[wdsd34svdf],但我只想要wdsd34svdf,如何删除方括号.请任何人帮助我.

谢谢

例:

String LoginToken=getName().toString();
System.out.println("LoginToken" + LoginToken);
Run Code Online (Sandbox Code Playgroud)

输出:[wdsd34svdf]我想要wdsd34svdf

gti*_*333 146

这很简单,你需要找到[和]然后子串的索引.(这里[始终在开始,]在结束时),

String loginToken="[wdsd34svdf]";
System.out.println(loginToken.substring(1, loginToken.length()-1));
Run Code Online (Sandbox Code Playgroud)

  • 这应该是loginToken.length() - 2来删除结束括号. (7认同)
  • @ mga911正如我在回答中提到的,'substring(beginIndex,endIndex)'参数应分别为'1'和'loginToken.length() - 1'(索引为[和]).第一个参数是包含的,第二个参数是独占的.上面的代码给了我正确的输出. (6认同)

phi*_*o37 18

这是通用的解决方案:

str.replaceAll("^.|.$", "")
Run Code Online (Sandbox Code Playgroud)

  • 这是日本的表情符号吗? (11认同)

Ted*_*opp 13

你可以随时使用substring:

String loginToken = getName().toString();
loginToken = loginToken.substring(1, loginToken.length() - 1);
Run Code Online (Sandbox Code Playgroud)


mic*_*man 7

此问题的另一个解决方案是使用commons-lang(自2.0版本开始)StringUtils.substringBetween(String str, String open, String close)方法.主要优点是它的安全操作无效.

StringUtils.substringBetween("[wdsd34svdf]", "[", "]"); // returns wdsd34svdf

  • 这将适用于该特定方案,但如果将"[wdsd] 34svdf]"作为第一个参数传递,则返回"wdsd". (2认同)

V98*_*801 5

我也有类似的情况,我认为类似

str.replaceAll("\[|\]", "");
Run Code Online (Sandbox Code Playgroud)

看起来更干净。当然,如果您的令牌中可能带有方括号,那将是行不通的。


小智 5

尝试删除字符串 ex.[1,2,3] 的第一个和最后一个括号

String s =str.replaceAll("[", "").replaceAll("]", "");
Run Code Online (Sandbox Code Playgroud)

预期结果 = 1,2,3