Java 将字符串与Arrays.asList值与if语句进行比较
我正在使用FXML创建一个用户界面。 有一个文本字段可以填写,还有一个按钮可以点击 单击按钮时,应读取已填写的文本并与列表进行比较 如果文本字段包含与列表中的值相等的字符,则应在同一用户界面的文本字段中显示特定字符串Java 将字符串与Arrays.asList值与if语句进行比较,java,arrays,if-statement,fxml,Java,Arrays,If Statement,Fxml,我正在使用FXML创建一个用户界面。 有一个文本字段可以填写,还有一个按钮可以点击 单击按钮时,应读取已填写的文本并与列表进行比较 如果文本字段包含与列表中的值相等的字符,则应在同一用户界面的文本字段中显示特定字符串 public class FXMLController { @FXML TextField input @FXML private Text actionContains @FXML protected void handleSubmitBu
public class FXMLController {
@FXML TextField input
@FXML private Text actionContains
@FXML protected void handleSubmitButtonAction(ActionEvent event) {
List<String> n1 = Arrays.asList("44606", "44613", "44615", "44619"}
String getInput = input.getText();
if(Arrays.asList(n1).contains(getInput)) {
actionContains.setText("CONTAINS");
} else {
actionContains.setText("DOES NOT CONTAIN");
}
}
}
公共类FXMLController{
@FXML文本字段输入
@FXML私有文本操作包含
@FXML受保护的void handleSubmitButtonAction(ActionEvent事件){
List n1=Arrays.asList(“44606”、“44613”、“44615”、“44619”}
字符串getInput=input.getText();
if(Arrays.asList(n1).contains(getInput)){
actionContains.setText(“CONTAINS”);
}否则{
actionContains.setText(“不包含”);
}
}
}
运行代码没有问题。字符串getInput的值等于输入文本,但if语句的结果总是“不包含”。
输入的文本例如为“44606621”
为了得到一个与列表值相等或不相等的字符串(因此等于而不是包含),我已经删除了最后三个字符,但这对结果没有任何影响。这是因为您将其放入arrayList两次,因此它将变为列表的arrayList,而不是arrayList
List<String> n1 = Arrays.asList("44606", "44613", "44615", "44619"}
Arrays.asList(n1); <--- makes it into [["44606", "44613", "44615", "44619"]]
到
这是因为您将它放入arrayList两次,所以它将取代arrayList成为列表的arrayList
List<String> n1 = Arrays.asList("44606", "44613", "44615", "44619"}
Arrays.asList(n1); <--- makes it into [["44606", "44613", "44615", "44619"]]
到
我已更改代码:
List<String> n1 = new ArrayList<String>();
n1.add("44606");
n1.add("44615");
String getInput = input.getText();
String cutInput = getInput.substring(0,5);
if (n1.contains(cutInput) {
actionContains.setText("CONTAINS");
} else {
actionsContains.setText("DOES NOT CONTAIN");
}
List n1=new ArrayList();
n1.添加(“44606”);
n1.添加(“44615”);
字符串getInput=input.getText();
字符串cutInput=getInput.substring(0,5);
如果(n1.包含(输出){
actionContains.setText(“CONTAINS”);
}否则{
actionsContains.setText(“不包含”);
}
更改输入以匹配列表值的字符数将导致一个有效的if语句。我更改了代码:
List<String> n1 = new ArrayList<String>();
n1.add("44606");
n1.add("44615");
String getInput = input.getText();
String cutInput = getInput.substring(0,5);
if (n1.contains(cutInput) {
actionContains.setText("CONTAINS");
} else {
actionsContains.setText("DOES NOT CONTAIN");
}
List n1=new ArrayList();
n1.添加(“44606”);
n1.添加(“44615”);
字符串getInput=input.getText();
字符串cutInput=getInput.substring(0,5);
如果(n1.包含(输出){
actionContains.setText(“CONTAINS”);
}否则{
actionsContains.setText(“不包含”);
}
更改输入以匹配列表值的字符数将导致一个有效的if语句。您必须在列表中迭代并搜索单词是否包含列表中的任何元素,而不是以其他方式。正确的算法是
public void testW(){
boolean flag = testContains(Arrays.asList("44606", "44613", "44615", "44619"),"44606621");
System.out.println(flag);
if(flag){
actionContains.setText("CONTAINS");
} else {
actionContains.setText("DOES NOT CONTAIN");
}
}
private boolean testContains(List<String> list, String word){
for (int i = 0; i < list.size(); i++) {
if(word.contains(list.get(i))){
return true;
}
}
return false;
}
public void testW(){
布尔标志=testContains(Arrays.asList(“44606”、“44613”、“44615”、“44619”)、“44606621”);
System.out.println(标志);
国际单项体育联合会(旗){
actionContains.setText(“CONTAINS”);
}否则{
actionContains.setText(“不包含”);
}
}
私有布尔testContains(列表、字符串字){
对于(int i=0;i
您必须在列表中迭代并搜索单词是否包含列表中的任何元素,而不是相反。正确的算法是
public void testW(){
boolean flag = testContains(Arrays.asList("44606", "44613", "44615", "44619"),"44606621");
System.out.println(flag);
if(flag){
actionContains.setText("CONTAINS");
} else {
actionContains.setText("DOES NOT CONTAIN");
}
}
private boolean testContains(List<String> list, String word){
for (int i = 0; i < list.size(); i++) {
if(word.contains(list.get(i))){
return true;
}
}
return false;
}
public void testW(){
布尔标志=testContains(Arrays.asList(“44606”、“44613”、“44615”、“44619”)、“44606621”);
System.out.println(标志);
国际单项体育联合会(旗){
actionContains.setText(“CONTAINS”);
}否则{
actionContains.setText(“不包含”);
}
}
私有布尔testContains(列表、字符串字){
对于(int i=0;i
您应该在数组的每个元素中查找字符串,而不是在数组中查找
所以用这个替换你的代码
public class FXMLController {
@FXML TextField input
@FXML private Text actionContains
@FXML protected void handleSubmitButtonAction(ActionEvent event) {
List<String> n1 = Arrays.asList("44606", "44613", "44615", "44619"}
String getInput = input.getText();
for(String s : n1) {
if(getinput.contains(s)) {
actionContains.setText("CONTAINS");
} else {
actionContains.setText("DOES NOT CONTAIN");
}
}
}
公共类FXMLController{
@FXML文本字段输入
@FXML私有文本操作包含
@FXML受保护的无效handleSubmitButtonAction(ActionEvent事件){
List n1=Arrays.asList(“44606”、“44613”、“44615”、“44619”}
字符串getInput=input.getText();
对于(字符串s:n1){
如果(getinput.contains)(s)){
actionContains.setText(“CONTAINS”);
}否则{
actionContains.setText(“不包含”);
}
}
}
您应该在数组的每个元素中查找字符串,而不是在数组中查找
所以用这个替换你的代码
public class FXMLController {
@FXML TextField input
@FXML private Text actionContains
@FXML protected void handleSubmitButtonAction(ActionEvent event) {
List<String> n1 = Arrays.asList("44606", "44613", "44615", "44619"}
String getInput = input.getText();
for(String s : n1) {
if(getinput.contains(s)) {
actionContains.setText("CONTAINS");
} else {
actionContains.setText("DOES NOT CONTAIN");
}
}
}
公共类FXMLController{
@FXML文本字段输入
@FXML私有文本操作包含
@FXML受保护的无效handleSubmitButtonAction(ActionEvent事件){
List n1=Arrays.asList(“44606”、“44613”、“44615”、“44619”}
字符串getInput=input.getText();
对于(字符串s:n1){
如果(getinput.contains)(s)){
actionContains.setText(“CONTAINS”);
}否则{
actionContains.setText(“不包含”);
}
}
}
的列表
永远不会包含字符串
。n1
已经是列表
,为什么要在其上再次使用数组。asList
?n1.contains(getInput)
AList
的List
永远不会包含字符串
。n1
已经是列表
,为什么要在上面再次使用Arrays.asList
呢?n1.contains(getInput)
我已将其更改为'List n1=new ArrayList();n1.add(“44606”);n1.add.add(“44613”);n1.add(“44615”)更改了if条件:if(n1.contains(getInput)){但仍不工作。我已将其更改为` List n1=new ArrayList();n1.add(“44606”);n1.add(“44613”);n1.add(“44615”);并更改了if条件:if(n1.contains(getInput)){但仍不工作。