0

在将它们添加到我的网页之前,我有一个包含大约 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,无论是小写还是大写。

4

3 回答 3

5

您的代码不可能正确:

if(Ord.charAt(i) == 'y' && Ord.charAt(i) == 'e' && Ord.charAt(i) ==  's')

永远

解决方案:

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 )

于 2012-07-30T17:22:42.460 回答
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
于 2012-07-30T17:23:35.290 回答
0

希望这会有所帮助,我尝试评论每个部分,让您了解每一行的作用。仅当“是”和“否”在各自的单独行上时才有效。

这是 I/O 的 Java 教程链接。我建议您有空时阅读它,有很多有用的信息Java I/O 教程

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();

    }

}
于 2012-07-30T17:56:25.730 回答