递归火山软件开发平台
标题:
哪个方法可以统计出某词语在一段文本中出现的次数
[打印本页]
作者:
灿小视频
时间:
2024-7-14 22:13
标题:
哪个方法可以统计出某词语在一段文本中出现的次数
寻找文本只能找到第一个的位置,如何找到总共出现多少次
作者:
承易
时间:
2024-7-14 22:48
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 函数声明
int countWord(const char *text, const char *word);
int main() {
char text[1000]; // 假设文本最大长度为 1000 个字符
char word[50]; // 假设词语最大长度为 50 个字符
printf("请输入一段文本(按回车结束):\n");
fgets(text, sizeof(text), stdin);
printf("请输入要统计的词语:\n");
fgets(word, sizeof(word), stdin);
// 将文本和词语转换为小写
for (int i = 0; text[i] != '\0'; i++) {
text[i] = tolower(text[i]);
}
for (int i = 0; word[i] != '\0'; i++) {
word[i] = tolower(word[i]);
}
// 调用函数统计词语出现次数
int count = countWord(text, word);
printf("词语 \"%s\" 在文本中出现的次数是:%d\n", word, count);
return 0;
}
// 函数实现
int countWord(const char *text, const char *word) {
int count = 0;
int wordLength = strlen(word);
while (*text) {
// 跳过前导空白字符
while (*text == ' ' || *text == '\t' || *text == '\n') {
text++;
}
// 检查是否找到了整个词语
if (strncmp(text, word, wordLength) == 0) {
count++;
// 跳过整个词语
text += wordLength;
} else {
// 跳过一个单词的长度
text++;
}
}
return count;
}
作者:
hcwanz
时间:
2024-7-14 22:59
承易 发表于 2024-7-14 22:48
#include
#include
#include
人问的是安卓
作者:
hcwanz
时间:
2024-7-14 23:00
不断的基于现有位置+1找就行,直到返回-1
作者:
灿小视频
时间:
2024-7-14 23:03
承易 发表于 2024-7-14 22:48
#include
#include
#include
看这架势,不断循环查找就是了,我还以为有一两个方法就能搞定了
作者:
灿小视频
时间:
2024-7-14 23:04
hcwanz 发表于 2024-7-14 23:00
不断的基于现有位置+1找就行,直到返回-1
循环查找就是了
作者:
创世魂
时间:
2024-7-14 23:08
就是循环查找啊,没别的办法。
作者:
承易
时间:
2024-7-15 08:42
public class TextCount {
public static void main(String[] args) {
String mainText = "这是一个示例文本,示例文本将用于统计某个特定文本的出现次数。请看示例文本。";
String searchText = "示例文本";
// 使用split方法计算searchText在mainText中出现的次数
// 注意:split方法会根据提供的正则表达式分割字符串,并返回一个数组
// 这里使用searchText作为正则表达式,并且添加了Pattern.LITERAL标志
// Pattern.LITERAL标志意味着特殊字符将被视为普通字符,不使用正则表达式
int count = mainText.split(Pattern.quote(searchText), -1).length - 1;
// 输出结果
System.out.println("The text "" + searchText + "" appears " + count + " times.");
}
}
复制代码
不会封装到火山,这个得其他人封装了
作者:
承易
时间:
2024-7-15 08:48
import java.util.regex.Pattern;
public class TextCounter {
/**
* 统计searchText在mainText中出现的次数。
*
* @param mainText 原文本
* @param searchText 要查找的文本
* @return 出现次数
*/
public static int countOccurrences(String mainText, String searchText) {
if (searchText == null || searchText.isEmpty()) {
return 0;
}
// 使用Pattern.quote来避免searchText中的正则表达式特殊字符
return mainText.split(Pattern.quote(searchText), -1).length - 1;
}
public static void main(String[] args) {
String mainText = "这是一个示例文本,示例文本将用于统计某个特定文本的出现次数。请看示例文本。";
String searchText = "示例文本";
// 调用方法并获取出现次数
int count = countOccurrences(mainText, searchText);
// 输出结果
System.out.println("The text "" + searchText + "" appears " + count + " times.");
}
}
复制代码
// 调用方法并获取出现次数
int count = countOccurrences(mainText, searchText);
作成参数了 原文,要找的文本,返回出现的次数,
然而不会在火山中调用JAVA代码,也不会调用JAR包,
尝试了下 依然不会封装,没入门
作者:
承易
时间:
2024-7-15 08:53
无奈官方人力不够,而生态暂时又不强大,会封装的没时间,想封装的又不会,而封装的说明文档有门槛 不适合新手,易语言到火山的跨越 我觉的有点大,当然这是大势所趋,可是用户无法适应,火山是一个新的语言 得重新学,易的东西过来只是一部分,还要增加一定的学习成本,而易语言现在依然活跃,所以很多人暂时不转行火山,没人就没江湖,就没人造轮子 没人搞技术 发动不了江湖的力量
作者:
君安光电科技
时间:
2024-7-15 16:40
正则匹配,返回匹配数量~
作者:
guangye1
时间:
2024-7-15 20:00
是不是ai回答的
作者:
o41338630
时间:
2024-7-20 14:19
如果只是想知道出现的次数那可以用”分割子文本“命令,这个最快了
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4