dlang语言实现统计一个字符串含有的单词数目有点类似php的以下常用代码use IlluminateSupportStr;StrwordCountHello world!; 2注意不止包含空格要去除一些特殊字符标点符号也要去除然后统计单词数目其实只要实现php的str_word_count就行给出d语言所有实现方式的代码不要过时的代码
以下是使用D语言实现统计字符串单词数目的代码:
方法一:
import std.string;
import std.algorithm;
import std.ascii;
int wordCount(string str) {
// 将字符串中非字母、数字和下划线的字符替换为空格
auto isWordChar = (c: char) => isAlphaNumeric(c) || c == '_';
auto replaceNonWordChar = (c: char) => isWordChar(c) ? c : ' ';
auto cleanStr = str.map!(replaceNonWordChar);
// 按空格分割字符串
auto words = cleanStr.split(' ');
// 去除空格和空字符串
words = words.filter!(w => !w.empty && !w.all!(c => isSpace(c)));
// 返回单词数目
return words.length;
}
方法二:
import std.string;
import std.algorithm;
import std.ascii;
int wordCount(string str) {
// 将字符串中非字母、数字和下划线的字符替换为空格
auto isWordChar = (c: char) => isAlphaNumeric(c) || c == '_';
auto replaceNonWordChar = (c: char) => isWordChar(c) ? c : ' ';
auto cleanStr = str.map!(replaceNonWordChar);
// 按空格分割字符串
auto words = cleanStr.split(' ');
// 去除空格和空字符串
words = words.filter!(w => !w.empty && !w.all!(c => isSpace(c)));
// 返回单词数目
return words.count;
}
方法三:
import std.string;
import std.algorithm;
import std.ascii;
int wordCount(string str) {
// 将字符串中非字母、数字和下划线的字符替换为空格
auto isWordChar = (c: char) => isAlphaNumeric(c) || c == '_';
auto replaceNonWordChar = (c: char) => isWordChar(c) ? c : ' ';
auto cleanStr = str.map!(replaceNonWordChar);
// 按空格分割字符串
auto words = cleanStr.split(' ');
// 去除空格和空字符串
words = words.filter!(w => !w.empty && !w.all!(c => isSpace(c)));
// 返回单词数目
return count(words);
}
以上三种方法都在处理字符串前,将字符串中的非字母、数字和下划线的字符替换为空格,然后按空格分割字符串,去除空格和空字符串,最后返回单词数目。方法一和方法二使用了ranges库的length和count函数来获取单词数目,而方法三使用了std.algorithm中的count函数来实现同样的功能
原文地址: http://www.cveoy.top/t/topic/fmXY 著作权归作者所有。请勿转载和采集!