gpt4 book ai didi

java - 为什么当我删除 toLowerCase() 时却不对我的单词进行排序?

转载 作者:行者123 更新时间:2023-12-01 11:48:06 24 4
gpt4 key购买 nike

为什么当我删除 toLowerCase() 时却不对我的单词进行排序?我该如何解决这个问题?我的 xml 中不会出现小写和大写吗?这是Java 8

我的所有代码

class Word implements Comparable<Word>{
private final String word;

Word(String word) {
this.word = word;
}

@Override
public int compareTo(Word o) {
return word.compareTo(o.word);
}

@Override
public String toString() {
return word;
}
}

class Sentence {
private final List<Word> words;

Sentence(List<Word> words) {
Collections.sort(words);
this.words = words;
}

public List<Word> getWords(){
return words;
}
}

interface Converter{
String convert(Sentence sentence);
}



class CSVConverter implements Converter{

@Override
public String convert(Sentence sentence){
return sentence.getWords().stream().map(Object::toString).collect(Collectors.joining(","))+"\n";
}
}


//XML Converter
class XMLConverter implements Converter{

@Override
public String convert(Sentence sentence){
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("<sentence>\n");
for(Word word : sentence.getWords()){
stringBuilder.append("\t<word>");
stringBuilder.append(word);
stringBuilder.append("</word>\n");
}
stringBuilder.append("</sentence>\n");
return stringBuilder.toString();
}
}


//main class whit function to edit text writ whit Java 8
public class Nordea {
public static void main(String[] args) throws IOException {
Pattern unicodeWord = Pattern.compile("\\w+", Pattern.UNICODE_CHARACTER_CLASS);
Converter converter = new CSVConverter();
converter = new XMLConverter();

Files.lines(Paths.get("text.txt"))
.map(line -> line.toLowerCase().replaceAll("\\s+", " "))
.flatMap(line -> Arrays.stream(line.split("[\\.!?]")))
.map(sentence -> Arrays.stream(sentence.split(" "))
.filter(word -> unicodeWord.matcher(word).matches())
.map(Word::new)
.collect(Collectors.toList())
)
.filter(list -> list.size()>0)
.map(Sentence::new)
.map(converter::convert)
.forEach(System.out::print);

System.out.println();
}
}

为什么当我删除 toLowerCase() 时却不对我的单词进行排序?我该如何解决这个问题?我的 xml 中不会出现小写和大写吗?这是Java 8这是Java 8

最佳答案

最好实现一个比较器,在比较之前将文本小写。

在我看来,这比在 Word 对象的compareTo 方法中执行相同操作更好,除非您认为小写比较是 Word“自然”排序的默认设置。

关于java - 为什么当我删除 toLowerCase() 时却不对我的单词进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com