原题:public class TestString{
         private String strRight="";
         public String getStrRight(int strIndex){
            //需要实现的部分
         }
         public void setStrRight(int strIndex,boolean isOk){
           //需要实现的部分
         }
      }
说明:此类的作用是设置权限问题,如果有权限,则将字符串strRight的某个位(由setStrRight方法参数strIndex指定)的值(值是由isOk指定,true 为1,false 为"")修改为1;如果没有权限,则该位就为空(“”)。
呵呵,限时10分钟,超时可不算哦!

解决方案 »

  1.   

    public static void setStrRight(String strRight,int index,boolean isOk)
    {
    String newStrRight;
    char []arry=strRight.toCharArray();
    if(isOk)
    {
    arry[index]='1';
    newStrRight= new String(arry);
    }
    else
    {

    arry[index]=' ';
    newStrRight= new String(arry);
    newStrRight=newStrRight.replace(" ","");
    }

    System.out.println(newStrRight);
    }
      

  2.   

    class TestString{
        private String strRight="test";
        
        public String getStrRight(int strIndex){
           if(strRight.length()>strIndex)
            return String.valueOf(strRight.charAt(strIndex));
           else
            return "error";
        }
        public void setStrRight(int strIndex,boolean isOk){
         if(strRight.length()>strIndex){
         if(isOk)
         strRight = replaceStr(strRight,strIndex,"1");
         else
         strRight = replaceStr(strRight,strIndex,"");//空还是空格
         }
        }
        private String replaceStr(String str,int index,String charC)
        {
         StringBuffer sb = new StringBuffer();
         sb.append(str.substring(0,index));
         sb.append(charC);
         sb.append(str.substring(index+1));
         return sb.toString();
        }
     }
      

  3.   

    回复wanguanghai(心灵鸡汤),zhuokai多谢为小弟指点迷津,呵呵,相信wanguanghai(心灵鸡汤)的程序是在给的StringRight.length()是大于等于index情况下进行的。还有一地方不明白,newStrRight=newStrRight.replace(  "    ",  "  "); 这句是何意呢? 还有zhuokai的程序中只考虑了strRight.length()  >strIndex大于的情况,并且,原题中 private  String  strRight初始状态没有值,是空串。(需要补位操作)
    sb.append(str.substring(index+1));  应该是sb.append(str.substring(index+1,str.length()));吧?呵呵不管怎样,都要谢谢二位,回答的都很好,所以每人10分呵呵
      

  4.   

    -------------------
    sb.append(str.substring(index+1));  应该是sb.append(str.substring(index+1,str.length()));吧?呵呵
    -------------------String API:
    public String substring(int beginIndex) 
    {
    return substring(beginIndex, count);
    }