【问题标题】:Remove leading and trailing brackets in a String删除字符串中的前括号和尾括号
【发布时间】:2012-01-28 03:34:05
【问题描述】:

在 Java 中,我想去掉字符串中的前括号和尾括号。
给定输入:

"[ hello, char[]={a,b,c} ... bye ]"

我怎样才能产生输出

" hello, char[]={a,b,c} ... bye "

只有前导 [ 和尾随 ] 被删除...我如何在 Java 中做到这一点?

【问题讨论】:

    标签: java string substring


    【解决方案1】:

    看看String.substring()方法:

    System.out.println(input.substring(1, input.length() - 1))
    

    【讨论】:

    • 因为他似乎知道字符串的确切长度,所以他可以说从 1 到 23 并像那样子串起来。
    • 是的,但是……原则上,人们永远不知道字符串会有多长。最好使用你知道的东西(字符串的前面在哪里),然后让Java报告其余的(字符串的结尾在哪里)。
    【解决方案2】:
    String s = "[ hello, char[]={a,b,c} ... bye ]";
    s = s.replaceAll("^\\[|\\]$", "");
    

    如果有前导和/或尾随空格:

    String s = "   [ hello, char[]={a,b,c} ... bye ] ";
    s = s.trim().replaceAll("^\\[|\\]$", "");
    

    【讨论】:

    • 非常有帮助,你能解释一下你为什么使用两个转义字符(/)吗?
    • @SashiKant ,如果你在字符前放两个 \\,java 只会识别转义模式
    【解决方案3】:

    事实上,

    这个子字符串的重载(startIndex, endIndex);

    input.substring(input.indexOf("[")+1,input.lastIndexOf("]"));

    如果要删除开头和结尾的空格,请使用 trim();

    【讨论】:

      【解决方案4】:
      public class Test{
         public static void main(String[] args){
             String test = "[ abc ]";
             System.out.println(test.substring(1,test.length()-1));
             // Outputs " abc "
         }
      }
      

      【讨论】:

      • 如果你确定它总是用括号括起来,这很简单
      【解决方案5】:
      String i = "[ hello, char[]={a,b,c} ... bye ]";
      
      int indexOfOpenBracket = i.indexOf("[");
      int indexOfLastBracket = i.lastIndexOf("]");
      
      System.out.println(i.substring(indexOfOpenBracket+1, indexOfLastBracket));
      

      打印:

       hello, char[]={a,b,c} ... bye 
      

      【讨论】:

        【解决方案6】:
        String a = "[ hello, char[]={a,b,c} ... bye ] ";
        a.substring(1,23);
        System.out.println(a);
        

        你去吧,我错过了阅读。

        【讨论】:

        • 替换了内括号,这不是预期的。
        猜你喜欢
        • 1970-01-01
        • 2018-08-16
        • 2019-10-12
        • 1970-01-01
        • 1970-01-01
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多