从java中的字符串中删除字符

Vin*_*nny -1 java string

我有一个字符串*dfgi*kjklx .我想删除输出之前和之后的字符

fgjklx
Run Code Online (Sandbox Code Playgroud)

我已经编写了这样的代码,但它显示了索引超出范围的错误.

String t = "*dfgi*kjklx";
 for(int i = 0; i < s.length(); i++)
  {
   String temp = s.charAt(i);
   if(temp == ‘*’)
    {
      t = t.replace(s.charAt(i), '');
      t = t.replace(s.charAt(i-1), '');
      t = t.replace(s.charAt(i+1), '');
      System.out.println("String: " + t);
     }
  }
Run Code Online (Sandbox Code Playgroud)

The*_*ind 8

你可以使用这样的正则表达式:

public static void main(String[] args) throws Exception {
    String s = "*dfgi*kjklx";
    System.out.println(s.replaceAll("\\w?\\*\\w?", "")); // replace 0 or 1 [a-zA-Z0-9] * 0 or 1 [a-zA-Z0-9].
}
Run Code Online (Sandbox Code Playgroud)

O/P:

fgjklx

编辑:就像安迪在他的评论中所说,你可以使用.而不是\\w删除"*"之后或之前的"任何".