Не можете найти, что не так в коде?

#java #android #regex

#java #Android #регулярное выражение

Вопрос:

Я пытаюсь разработать простую программу регулярных выражений, но я продолжаю получать эту ошибку от eclipse.

Ошибка находится в этой строке, в URL-адресе без верхнего регистра

Последовательность символов getURLContent(URL url) вызывает исключение IOException{

Синтаксическая ошибка, вставьте «;» для завершения LocalVariableDeclarationStatement

 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.R.string;
import android.app.Activity;
import android.os.Bundle;

public class VisualizaActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.visualiza);


    String expr = "<td><span\s class="flagicon"[^>]*>";

    CharSequence getURLContent(URL url) throws IOException{
        URLConnection conn = url.openConnection();
        String enconding  = conn.getContentEncoding();
        if (enconding == null){
            enconding = "ISO-8859-1";
        }
        BufferedReader br = new BufferredReader(new InputStreamReader(conn.getInputStream(), enconding));
        StringBuilder sb = new StringBuilder(16384);
        try{
            String line;
            while ((line = br.readLine()) != null){
                sb.append(line);
                sb.append('n');
            }
        } finally{
            br.close();
        }
        return sb;
    }


    Pattern patt = Pattern.compile(expr,Pattern.DOTALL | Pattern.UNIX_LINES);
            URL url = new URL("http://en.wikipedia.org/wiki/Mexico");
            Matcher m = patt.matcher(getURLContent(url));
            while (m.find()) {
              String stateURL = m.group(1);
              String stateName = m.group(2);
              System.out.println(stateName   ","   stateURL);
            }
    }
}
  

Комментарии:

1. Вы пытаетесь создать метод внутри метода? Может ли Android делать что-то, о чем я не знаю?

2. ^^ Это. Ваш код недействителен. Вы не можете этого сделать.

3. @DaveNewton — это похоже на a BufferedReader , но холоднее.

4. @BrianRoach Я подумал, что это пиратский код, но я думаю, что это BuffarrredReader .

Ответ №1:

Вы не можете создать метод внутри метода. Вы пытались объявить getURLContent внутри onCreate