我有一个列表,其中包含大约700个我需要编辑的项目,然后再将它们添加到我的网页中。 我尝试手动编辑每个项目,但它变得过于广泛,我认为我可能会使用Java来阅读和编辑文件,因为需要编辑的单词在每个项目中具有相同的开头和结尾。
我以为我会先从Q中的单词循环开始,保存它,当我有逻辑工作时,我会找到如何阅读文本文件并再次做同样的事情。 (如果有其他方式,我愿意接受建议) 这是我到目前为止编写的代码,很久以前我用Java编写代码,所以我现在基本没有技能。
import javax.swing.JOptionPane;
public class CustomizedList
{
public static void main (String[] args)
{
String Ord = JOptionPane.showInputDialog("Enter a word");
String resultatOrd ="";
for(int i = 0; i < Ord.length(); i++)
{
if(Ord.charAt(i) == 'y' && Ord.charAt(i) == 'e' && Ord.charAt(i) ==
's')
{
resultatOrd += Ord.charAt(i);
System.out.println(resultatOrd);
}
else
System.out.println("Wrong word.");
}
}
}
我不确定我做错了什么,但我输入的这个词在逻辑上不起作用。 我想从这个文本文件中删除两个单词:YES和NO,都是大写和小写。
答案 0 :(得分:5)
您的代码不对:
if(Ord.charAt(i) == 'y' && Ord.charAt(i) == 'e' && Ord.charAt(i) == 's')
将 始终 false
解决方案:
Ord.toLower().contains("yes")
或者(更糟糕但在你的情况下仍然正确):
if(Ord.charAt(i) == 'y' && Ord.charAt(i+1) == 'e' && Ord.charAt(i+2) == 's')
如果您只是寻求平等,可以使用equals()
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#contains(java.lang.CharSequence)
答案 1 :(得分:1)
您的if
测试:
if(Ord.charAt(i) == 'y' && Ord.charAt(i) == 'e' && Ord.charAt(i) == 's')
永远不会是真的。你指定同一个角色必须是三个不同的东西。
以方法String.equalsIgnoreCase
取消,以便更好地测试您想要的字词。
例如:
if (word.equalsIgnoreCase("yes") || word.equalsIgnoreCase("no"))
// do something with word
答案 2 :(得分:0)
希望这有帮助,我试着评论每个部分,让你了解每一行的作用。 只有当“是”和“否”在各自不同的行上时才有效。
这是I / O的Java Tutorials链接。我建议你在有时间的时候阅读它,有很多好的信息Java I/O Tutorial
import java.io.*;
import java.util.ArrayList;
public class test {
public static void main(String[] args) throws Exception {
//name of file to read
File file = new File("filename.txt");
//BufferedReader allows you to read a file one line at a time
BufferedReader in = new BufferedReader(new FileReader(file));
//temporary Array for storing each line in the file
ArrayList<String> fileLines = new ArrayList<String>();
//iterate over each line in file, and add to fileLines ArrayList
String temp=null;
while((temp=in.readLine())!=null){
fileLines.add(temp);
}
//close the fileReader
in.close();
//open the file again for writing(deletes the original file)
BufferedWriter out = new BufferedWriter(new FileWriter(file));
//iterate over fileLines, storing each entry in a String called "line"
//if line is equal to "yes" or "no", do nothing.
//otherwise write that line the the file
for(String line : fileLines){
if(line.equalsIgnoreCase("yes")||line.equalsIgnoreCase("no")){
continue;//skips to next entry in fileLines
}
//writes line, if the line wasn't skipped
out.write(line);
out.write(System.getProperty("line.separator")); //newline
}
//save the new file
out.close();
}
}