1.给出一个字符串 ReString=”abc  bde  fhi  opq  “ 要求编写一个方法,返回一个字符串,例如:ReSubString(ReString,3)=”fhi”,如果该位置上没有字符串就返回空字符串?
主要是处理字符串 ReString中的空格。(很简单的帮忙写一些)
   String ReSubString(String ReString, int n){   }2. 给出一个字符串 ReString=”abc  bde  fhi  opq  “ 要求编写一个方法,返回一个数字,例如:ReSubString(ReString,“fhi”)=3,如果没有该字符串就返回0?
主要是处理字符串 ReString中的空格。(很简单的帮忙写一些)
   Int ReSubString(String ReString,String str){   }

解决方案 »

  1.   

    ReSubString(ReString,“fhi”)=3为什么结果是 3 ?另外:ReSubString(ReString,"hi") 返回啥?
      

  2.   

    第一题
    import java.util.Arrays;
    import java.util.StringTokenizer;public class TestString
    {
       public static void main(String[]args)
       {
           String ReString="abc  bde  fhi  opq";
           System.out.println(ReSubString(ReString,3));
       }
       public static String ReSubString(String ReString, int n){ 
          StringTokenizer commaToker = new StringTokenizer(ReString, " ");
          String[] result = new String[commaToker.countTokens()];
          System.out.println(result.length);
          int k = 0;
          while (commaToker.hasMoreTokens()) 
          {
             result[k] = commaToker.nextToken();
             k++;
          }
          if(n>result.length)
          {
           return null;
          }
          else
          {
           return result[n-1];
          }
      } 
      

  3.   

    这次两个题综合到一起了import java.util.Arrays;
    import java.util.StringTokenizer;public class TestString
    {
       public static void main(String[]args)
       {
           String ReString="abc  bde  fhi  opq";
           System.out.println(ReSubString(ReString,3));
           System.out.println(ReSubString(ReString,"fhi"));
       }
       public static String ReSubString(String ReString, int n){ 
          StringTokenizer commaToker = new StringTokenizer(ReString, " ");
          String[] result = new String[commaToker.countTokens()];
          
          int k = 0;
          while (commaToker.hasMoreTokens()) 
          {
             result[k] = commaToker.nextToken();
             k++;
          }
          if(n>result.length)
          {
           return null;
          }
          else
          {
           return result[n-1];
          }
        }
          public static int ReSubString(String ReString, String str){ 
          StringTokenizer commaToker = new StringTokenizer(ReString, " ");
          String[] result = new String[commaToker.countTokens()];
       
          int k = 0;
          boolean flag=false;
          while (commaToker.hasMoreTokens()) 
          {
             result[k] = commaToker.nextToken();
             k++;
          }
          for(k=0;k<result.length;k++)
          {
           if(result[k].equals(str))
           {
           flag=true;
           break;
           }
          }
          if(flag)
          {
           return k+1;
          }
          else
          {
           return 0;
          }
      } }
      

  4.   


    3的意思估计是 按空格截取字符串  代表第三个字符串吧
    abc 第1个
    bde 第2个 
    fhi 第3个 
    opq 第4个
      

  5.   

    应该是这样的,那就直接用split来做好了,还是比较简单的。
      

  6.   


    String ReSubString(String ReString, int n) {
    String[] strs = ReString.split(" ");
    if (n < 1 || n > strs.length) {
    return "";
    }
    String str = strs[n-1];
    return str;
    }
    int ReSubString(String ReString, String str) {
    String[] strs = ReString.split(" ");
    for (int i = 0; i < strs.length; i++) {
    String string = strs[i];
    if (str.equals(string)) {
    return i+1;
    }
    }
    return 0;
    }
      

  7.   


    public class TestString {
    public static String reSubString(String s,int n){
    String [] temp=s.split(" ");
    String result=null;
    if(n>temp.length)
    result=null;
    else
    result=temp[n-1];
    return result;
    }
    public static int reSubString(String s,String sub){
    String [] temp=s.split(" ");
    int result=0;
    for(int i=0;i<temp.length;i++){
    if(sub.equals(temp[i])){
    result=i+1;
    break;
    }
    }
    return result;
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String s="abc bde fhi opq";
    String r=reSubString(s,2);
    System.out.println(r);
    int i=reSubString(s,"fhi");
    System.out.println(i);
    }过来凑热闹。
      

  8.   

    我也来个
    class F
    {
       public String ReSubString(String ReString, int n){ 
    try
    {
    String[] arr=ReString.split("  ");
    return arr[n-1];
    }
    catch(Exception e)
    {
    return "";
    }
      } 
       public int ReSubString(String ReString,String str){ 
    String[] arr=ReString.split("  ");
    for(int i=0;i<arr.length;i++)
      {
    if(arr[i].equals(str))
    return i+1;
      }
    return 0;
      } 
    }
    class Test
    {
    public static void main(String[] args)
    {
    String ReString="abc  bde  fhi  opq  ";
    F f=new F();
    System.out.println(f.ReSubString(ReString,3));
    System.out.println(f.ReSubString(ReString,5));
    System.out.println(f.ReSubString(ReString,"fhi"));
    System.out.println(f.ReSubString(ReString,"fh1i"));
    }
    }
      

  9.   

    ReSubString(ReString,"hi") 肯定出错,按他的意思说
      

  10.   

    LZ的要求還是用split(" ")  一下就解決咯
      

  11.   

    用split的方法是正解
    再说下replaceAll(String oldString,String newString)的实现形式
    /**
     * 该方法返回字符串
     */
    String  ReSubString(String reString, int n){ 
    String noSpaceReString=reString.replaceAll(" ","");//将reString转换为无空格的类型
    if(n>noSpaceReString.length()/3){
    return "";//如果所给n大于字符串的取值范围,返回空
    }
    return noSpaceReString.substring(3*n-3, 3*n);
    }
    /**
     * 该方法返回n
     */
     int RePosition(String reString,String str){ 
     String noSpaceReString=reString.replaceAll(" ","");//将reString转换为无空格的类型
     for(int i=0;i<=noSpaceReString.length()/3-1;i++){
     if(noSpaceReString.substring(3*i, 3*i+3).equals(str)){
     return i+1;//如果判断相等,就返回
     }
     }
     return 0;//没有的话,返回0
     }
           
      

  12.   

    我的问题:上面的代码怎么粘到一起了?明明不是这样的呀
    /**
     * 该方法返回字符串
     */
    String  ReSubString(String reString, int n){ 
    String noSpaceReString=reString.replaceAll(" ","");//将reString转换为无空格的类型
    if(n>noSpaceReString.length()/3){
    return "";//如果所给n大于字符串的取值范围,返回空
    }
    return noSpaceReString.substring(3*n-3, 3*n);
    }
    /**
     * 该方法返回n
     */
     int RePosition(String reString,String str){ 
     String noSpaceReString=reString.replaceAll(" ","");//将reString转换为无空格的类型
     for(int i=0;i<=noSpaceReString.length()/3-1;i++){
     if(noSpaceReString.substring(3*i, 3*i+3).equals(str)){
     return i+1;//如果判断相等,就返回
     }
     }
     return 0;//没有的话,返回0
     }
           
      

  13.   


    /**
     * 该方法返回字符串
     */
    String  ReSubString(String reString, int n){ 
    String noSpaceReString=reString.replaceAll(" ","");//将reString转换为无空格的类型
    if(n>noSpaceReString.length()/3){
    return "";//如果所给n大于字符串的取值范围,返回空
    }
    return noSpaceReString.substring(3*n-3, 3*n);
    }
    /**
     * 该方法返回n
     */
     int RePosition(String reString,String str){ 
     String noSpaceReString=reString.replaceAll(" ","");//将reString转换为无空格的类型
     for(int i=0;i<=noSpaceReString.length()/3-1;i++){
     if(noSpaceReString.substring(3*i, 3*i+3).equals(str)){
     return i+1;//如果判断相等,就返回
     }
     }
     return 0;//没有的话,返回0
     }
           
      

  14.   

    使用split
    就可能得到答案了
      

  15.   

    先用splite再从数组中找简单些吧