Поиск строки из строки - PullRequest
0 голосов
/ 03 марта 2012

После анализа веб-страницы я нашел эту строку

"JANATAMF 7.30 -0.20 -2.67% 1STBSRS 80.00 -3.60 -4.31% 1STPRIMFMF 12.90 -0.80 -5.84% 6THICB 40.60 -2.50 -5.80% 8THICB 50.00 -1,30 -2,53% ABB1STMF 9,90 0,30 3,13% ACI 188,00 -5,90 -3,04% ACIFORMULA 82,70 0,50 0,61% "

Теперь я хочу найти соответствующее целочисленное значение для любого ввода, например, если я введу JANATAMF для ввода, это будетиндивидуально печатать 7.30 -0.20 -2.67%

Я написал код, но он выглядит не очень хорошо ..

public void stringfinder(String linktext,String input) throws NumberFormatException
{

    try
    {
        if(linktext!=null)
        {
            String finalstr=linktext;
            //System.out.print(finalstr);
            int inplen=input.length();
            if(finalstr.contains(input))               //CHECK THE USER INPUT IS IN STRING OR NOT WHICH RETURN BOOLEAN
             {
                //System.out.println("found");
                int index=finalstr.indexOf(input);      //FIND THE INDEX OR STARTING POINT OF THE STRING
                //System.out.print(index);
                int stpr=index+inplen+1;                  //AS WE VE TO PRINT THE NEXT STRING FROM THE INPUT STRING
                                                        //WE ADD THE STARTING POINT OF THE INPUT STRING AND THE LENGTH
                                                        //OF THE INPUT STRING
                //int first=0;
                int i=0;
                String x="" ;
                String ary[]=new String[10];
                while(finalstr.charAt(stpr)!=' ' )      //PRINT UNTIL FIND A GAP
                {
                    //System.out.print(finalstr.charAt(stpr));

                    Character c=new Character(finalstr.charAt(stpr));
                    String s=c.toString(c);
                    ary[i]=s;
                    x=x+ary[i];
                    i++;
                    stpr++;
                    //first++;
                }
                //System.out.print(x);
                String yo=x;
                System.out.print(yo);
                //double d = Double.valueOf(yo.trim()).doubleValue();

                /*int secstpr=stpr+1;
                int second=0;
                while(finalstr.charAt(secstpr)!=' ')
                {
                    System.out.print(finalstr.charAt(secstpr));
                    secstpr++;
                    second++;
                }*/
                //System.out.print(second);

             }

        }

}

так что помогите плз ...

1 Ответ

0 голосов
/ 03 марта 2012

Это то, на что @kev ссылался:

public String stringfinder(String linktext, String input) {
    String [] inputSplits = input.split("\\s+");
    for (int i = 0; i < inputSplits.length; i += 4) {
        if (inputSplits[i].equals(linktext) {
            return inputSplits[i + 1] + " " + inputSplits[i + 2]
                      + " " + inputSplits[i + 3];
        }
    }
    return "";
}

Это вернет искомую строку.Тем не менее, я бы предложил вместо этого соединить строки здесь: return inputSplits[i + 1] + " " + inputSplits[i + 2] + " " + inputSplits[i + 3]; вы интерпретируете их более умно (например, построите числа).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...