在判断一个字符串,比如说 
String a = "hello world";
String b = "hello"if(a.contains(b)){
    /*
    *操作a-b   我想得出" world",当然这个hello不一定在开头,其位置是不固定的。
     */
}可以使用StringBuffer StringBuider 以及java.util.StringXXXXXX 这3个类有懂的 请告知一下,这个方法在I18N中经常会使用到。如果有需要,我可以把前面的都改成StringBuffer 或者 StringBuider

解决方案 »

  1.   

    直接replace("world","");不行吗?
      

  2.   

    用String的replaceAll方法即可。
    String a = "hello world"; 
    String b = "hello" 
    //可适应任何位置
    String result = a.replaceAll(b, "");
      

  3.   

    你要是用replaceAll就有问题了。楼主的这个减法定义的不完善。"hello world hello" - "hello" = ?
      

  4.   

    String的减法,造成了很大的歧义的 所以没有哪个语言,支持 字符串的-号操作。
      

  5.   

    public class Test {
        public static void main(String[] args)  { 
            String a = "hello world hello";
            String b = "hello";
            System.out.println(stringSubtraction(a,b));
        }
        
        /**
         * Delete the first occured String
         */
        public static String stringSubtraction(String a, String b) {
            if(a.contains(b)) {
                StringBuilder aa = new StringBuilder(a);
                StringBuilder bb = new StringBuilder(b);
                int delStartIndex = a.indexOf(b.toString());
                int delEndIndex = a.length() - aa.reverse().lastIndexOf(bb.reverse().toString());
                return aa.reverse().delete(delStartIndex, delEndIndex).toString();
            } 
            return "Can't substraction";
        }
    }