【发布时间】:2014-05-30 06:29:44
【问题描述】:
主要思想:我有一个 URL(字符串),还有一个包含少量数据(字符串)的数组。我想使用contains() 方法检查是否在 URL 中找到了 Array 中的字符串。
我的代码结构:首先将字符串单词存储在一个文本文件中。我将读取该文件并将值存储在JTextArea 中。从JTextArea 我使用getText() 方法并将值存储在一个数组中。现在,我将使用contains 方法检查字符串。这是我的代码:
这个函数(工作正常)读取文本文件并写入JTextArea。
JTextArea jta = new JTextArea(300,300);
Reader reader = null;
try {
reader = new FileReader(new File("res/pass.txt"));
jta.read(reader, "The force is strong with this one");
} catch (Exception exp) {
exp.printStackTrace();
} finally {
try {
reader.close();
} catch (Exception exp) {}
}
在此之前等等,这些是之前存储在pass.txt 中的单词。举个例子:
red~
绿色~
黄色~
黑色~
这个函数(工作正常)知道数组的长度。
String getArr="";
int getCount=0, z=0, lens = jta.getText().length();
for(int i=0; i<lens; i++){
if(jta.getText().charAt(i)=='~'){
getCount++;
}
}
这个函数(工作正常)将字符串存储在数组中。
String[] arr = new String[getCount];
for(int i=0; i<lens; i++){
if(jta.getText().charAt(i)!='~'){
getArr = getArr+jta.getText().charAt(i);
}
else{
arr[z] = getArr; getArr=""; z++;
}
}
问题从这里开始。我试图在控制台中打印所有 Array 值,它正在显示所有值。但是,当我进行比较时,它并没有像我预期的那样工作。
String txtGetURL = txtURL.getText(); //The URL
Boolean ok=true;
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]);
}
for(int i=0; i<arr.length; i++){
if(txtGetURL.toLowerCase().contains(arr[i].toLowerCase())){
ok=false;
}
}
if(ok==false){
JOptionPane.showMessageDialog(null, "URL Blocked!");
}
else{
JOptionPane.showMessageDialog(null, "Whitelist URL");
}
假设我在文本字段中输入的示例 URL 是 http://www.example.com/ex/examplered.html,而不是显示 URL Blocked,而是显示 Whitelist URL。请帮我解决我的问题。提前致谢。
【问题讨论】:
标签: java arrays string contains