Как создать строку / массив строк из файла .txt /.xml? - PullRequest
0 голосов
/ 03 мая 2020

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

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

Код:

public class MainActivity extends AppCompatActivity {

private TextView tv1;
private EditText et3;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv1 = (TextView)findViewById(R.id.tv1);
    et3 = (EditText)findViewById(R.id.et3);

}

public void boton (View view){

    String text = et3.getText().toString();

    //String[] symbolsArr = {"He|","H|","Os|","O"};

    //StringBuffer sb = new StringBuffer();

    //for(int i = 0; i < symbolsArr.length; i++) {  //all of this is just to convert an array to a single string
    //    sb.append(symbolsArr[i]);
    //

    String symbols = "Zr|Zn|Yb|Y|Xe|W|V|U|Ts|Tm|Tl|Ti|Th|Te|Tc|Tb|Ta|Sr|Sn|Sm|Si|Sg|Se|Sc|Sb|S|Ru|Rn|Rh|Rg|Rf|Re|Rb|Ra|Pu|Pt|Pr|Po|Pm|Pd|Pb|Pa|P|Os|Og|O|Np|No|Ni|Nh|Ne|Nd|Nb|Na|N|Mt|Mo|Mn|Mg|Md|Mc|Lv|Lu|Lr|Li|La|Kr|K|Ir|In|I|Hs|Ho|Hg|Hf|He|H|Ge|Gd|Ga|Fr|Fm|Fl|Fe|F|Eu|Es|Er|Dy|Ds|Db|Cu|Cs|Cr|Co|Cn|Cm|Cl|Cf|Ce|Cd|Ca|C|Br|Bk|Bi|Bh|Be|Ba|B|Au|At|As|Ar|Am|Al|Ag|Ac";
    //The really long string with all the patterns

    Pattern p = Pattern.compile(symbols);
    Matcher m = p.matcher(text);

    tv1.setText("");

    while (m.find()){
        tv1.append("found " + m.group() + "\n");
    }
}
}

1 Ответ

0 голосов
/ 03 мая 2020

Зависит от того, как вы хотите сохранить файл. Например, давайте использовать активы. Поместите файл data.txt в assets (вы можете создать его в папке File / New / Folder / Assets)

После этого вы можете создать метод, который поможет вам получить строку из assetFile

public String getStringFromAssetFile(Context context, String nameFile)
    {
        String str = "";
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(context.getAssets().open(nameFile)));
            String line;
            while ((line = reader.readLine()) != null) {
                str += line;

            }

        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return str;
    }

Теперь вы можете использовать этот метод для создания строки или массива с этими шаблонами

String symbols = getStringFromAssetFile(MainActivity.this, "data.txt");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...