ResString是一个字符串,其中含有大量空格,该字符串可由空格为风格符分成若干个子字符串,要求写一个函数返回指定位置的子字符串,找不到则返回””,例如:ResString=“ abc   def      ghi       jkl”,则GetSubString(ResString,3)=“ghi”

解决方案 »

  1.   

    char[] res = ResString.toCharArray();
    然后过滤字符串,压入链表
      

  2.   

    import java.util.*;public class Login{
    public static void main(String[] args){
    String ResString = " abc def  ghi  jkl";
    System.out.println(GetSubString(ResString,3));
    } public static String GetSubString(String str, int i ){
    String[] s = str.split(" ");
    Vector v = new Vector();
    for(String st : s){
    if(!st.equals("")){
    v.add(st);
    }
    }
    return (String)v.elementAt(i-1);
    }
    }
      

  3.   

    public String getS(String s, int index){
    boolean flag = false;
    int count = 0;
    StringBuffer sb = new StringBuffer();
    for(int i=0;i<s.length();i++){
    char c = s.charAt(i);
    if(' ' == c){
    flag = false;
    }else if(false ==flag){
    flag = true;
    count++;
    }
    if(count == index)
    sb.append(c);
    }
    return sb.toString();
    }
      

  4.   


    import java.util.*;
    /**
     *
     * @author lj
     */
    public class Test {
            private String[] c;
            private int d;
           String getSubString(String[] c ,int d){
               this.c=c;
               this.d=d;
               try{
               if(c[0].equals("")){        //如果前面有空格就执行这个
                   return c[d];
               }
               else{                       //前面没空格就执行这个
                   return c[d-1]; 
               }
               }catch(Exception e){    //找不到则返回””
                  return " ";
               }
        }
        public static void main(String[] args){
            Test t = new Test();
            String a  =" abc  def      ghi      jkl";   //第一种情况:前面有空格;
            String[] b = a.split("(\\s)+");
            System.out.println(Arrays.toString(b));
            
            System.out.println(t.getSubString(b, 3));
            String two ="abc    def  ghi  jkl";   //第二种情况,前面没有空格;
            String[] c = two.split("(\\s)+");
            System.out.println(Arrays.toString(c));
            System.out.println(t.getSubString(c, 3));
            //第三种情况,找不到
            System.out.println(t.getSubString(c, 10));
        }}
      

  5.   

    public String getSubString(String str,int index) {
    java.util.regex.Pattern p;
    if(index == 1)
    p = java.util.regex.Pattern.compile("^ *[a-zA-z]+");
    else
    p = java.util.regex.Pattern.compile(" +[a-zA-z]+");

    java.util.regex.Matcher m = p.matcher(str);

    int i = 0;
    while(m.find()) {
    if(++i == index)
    return m.group().trim();
    }
    return " ";
    }
      

  6.   

    引用3楼的public class Login{ 
    public static void main(String[] args){ 
        String ResString = " abc def  ghi  jkl"; 
        System.out.println(GetSubString(ResString,3)); 
    } public static String GetSubString(String str, int i ){ 
        String[] s = str.split(" "); 
        if (s[0].toString() ==""){
    return s[i+1].toString();
        }else{
    return s[i].toString();
        }
    }
    }
      

  7.   


    public class TestSplit3 { /**
     * @param args
     */
    public static void main(String[] args) {
    //第0个位置 的字串是abc  1 def  2 gh
    new TestSplit3().getsubstring(3);
    }
    public  void getsubstring(int j){

    String   s = "abc    def   gh i  kjj"; 
    String[] ss = s.split("\\s+", -1);
    for(int i = 0; i<ss.length ; i++){
    if(i == j){
    System.out.println(ss[i]);
    }
    }

    }}这种方法好用 你试试看