Я делаю программу на Java, но у меня возникла проблема.Не удается получить подстроку после String.split()?
Во-первых, позвольте мне показать вам код:
if (file.exists()){
for (String s : DFileLoader.getMethod(pathToSaveAs)){
if (s.startsWith("playerSendMessage%$%@@")){
pSmsgc.setSelected(true);
}else{
pSmsg.setEnabled(false);
}
}
if (DFileLoader.getMethod(pathToSaveAs).size() <= 0){
pSmsg.setEnabled(false);
}
}else{
pSmsg.setEnabled(false);
}
pSmsgc.setFont(fDisp);
pSmsgc.setBounds(new Rectangle(50, 135, 140, 30));
pSmsg.setBounds(new Rectangle(175, 135, 150, 30));
pSmsgc.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (pSmsgc.isSelected()) pSmsg.setEnabled(true);
else pSmsg.setEnabled(false);
}
});
pane.add(pSmsgc);
if (file.exists()){
for (String s : DFileLoader.getMethod(pathToSaveAs)){
if (s.startsWith("playerSendMessage%$%@@")){
String[] d = s.split("%$%@@");
String text;
if (d.length <= 1) text = "";
else text = d[1];
pSmsg.setText(text);
}
}
}
pane.add(pSmsg);
Вот некоторые вещи, чтобы знать об этом:
Когда я использую "getMethod (путь)", его просто возвращая Список строк (список), который включает в себя каждую строку файла TXT.
pSmsgc - это JCheckBox, а pSmsg - это JTextField.
У меня есть это, когда ящик не отмечен, текстовое поле выделено серым цветом, что отлично работает.
Если в файле есть строка, начинающаяся с «playerSendMessage% $% @@», поле будет проверено, и это будет работать.
Вещь, которая не работает, это то, где она устанавливает текст текстового поля во вторую подстроку этой строки.
Например, строка файла может быть «playerSendMessage% $% @@ Hello!». Это приведет к тому, что окно будет проверено, а поле «Hello!»
Все работает, за исключением части, где поле говорит текст.
Это может быть простая вещь, которую я пропускаю, а может и нет. Кто-нибудь может помочь?
Возможно, вы попытаетесь запустить код в отладчике или добавить инструкции println(), чтобы узнать, насколько далеко ваш код получает и какие значения имеют заданная переменная. ... 1) Выполняется ли выполнение внутри блока оператора if (file.exists())? 2) Получается ли он внутри цикла for (String s: ...)? 3) Он попадает внутрь инструкции if (s.startsWith ...)? 4) Каков размер и значения внутри d? 5) Каково конечное значение переменной «text» непосредственно перед строкой pSmg.setText()? – GreenGiant
Мне интересно, что произойдет, если вы попытаетесь сделать аргумент regex «playerSendMessage% $% @@»? –
С линиями, как-то-dot-functionOfSomething, нам может быть полезно увидеть большую часть вашего кода. –