首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在prolog中将字符串列表拆分为列表列表

在Prolog中将字符串列表拆分为列表列表,可以通过编写递归规则来实现。

首先,我们可以定义一个规则split_string_list/2,该规则接受一个字符串列表作为输入,并将其拆分为列表列表作为输出。

代码语言:txt
复制
split_string_list([], []).
split_string_list([String|Rest], [SplitList|Result]) :-
    split_string(String, " ", "", SplitList),
    split_string_list(Rest, Result).

上述规则中,split_string/4是Prolog内置的字符串拆分谓词,它接受四个参数:要拆分的字符串、分隔符、边界处理方式和拆分后的列表。我们将它用于拆分每个字符串,并将拆分后的列表存储在结果列表中。

接下来,我们可以测试这个规则:

代码语言:txt
复制
?- split_string_list(["Hello World", "Prolog is fun"], Result).
Result = [["Hello", "World"], ["Prolog", "is", "fun"]].

以上结果表明,输入的字符串列表被成功地拆分为列表列表。

腾讯云相关产品和产品介绍链接地址:

  1. 腾讯云云服务器(CVM):提供弹性、稳定、可靠的云服务器,满足各类计算需求。详细信息请参考:腾讯云云服务器(CVM)
  2. 腾讯云云数据库 MySQL 版(CDB):提供高性能、可扩展的MySQL数据库服务,适用于各类业务场景。详细信息请参考:腾讯云云数据库 MySQL 版(CDB)
  3. 腾讯云云函数(SCF):提供无服务器的事件驱动计算服务,让您无需管理服务器即可运行代码。详细信息请参考:腾讯云云函数(SCF)

请注意,以上仅是腾讯云的一些相关产品,供参考。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

QT QStringList用法

QStringList类提供了一个字符串列表 从QList <QString>继承而来,它提供快速索引为基础的接入以及快速插入和清除 其成员函数用于操作这个字符串列表如 append(),insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()等 1. 增加字符串    可以通过append(),或使用<<,如    QStringList fonts;    fonts << “Arial” << “Helvetica” << “Times” << “Courier”;    // fonts:[ “Arial” ,”Helvetica”, “Times” , “Courier”] 2. 合并字符串使用join( )    QString str = fonts.join(“,”);    // str == “Arial,Helvetica,Times,Courier” 3. 拆分字符串    QString str = ” Arial,Helvetica, ,Times,Courier “;    QStringList list1 = str.split(“,”);    // list1: [ ” Arial “, ” Helvetica “,” “, ” Times “, ” Courier ” ]    QStringList list2 = str.split(“,”, QString::SkipEmptyParts);    // list2: [ ” Arial “, ” Helvetica “, ” Times “, ” Courier ” ]    也就是说如果有QString::SkipEmptyParts,空项不会出现在结果。默认情况下,空项被保留 4. 索引    IndexOf()函数返回给定字符串的第一个出现的索引。    而lastIndexOf()函数,返回字符串的最后一次出现的索引。 5. 替换replaceInStrings()    QStringList files;    files << “$QTDIR/src/moc/moc.y”    << “$QTDIR/src/moc/moc.l”    << “$QTDIR/include/qconfig.h”;    files.replaceInStrings(“$QTDIR”, “/usr/lib/qt”);    // files: [ “/usr/lib/qt/src/moc/moc.y”, …] 6. 过滤filter()    可以让你提取一个新的列表只包含这些字符串包含一个特定的字符串(或匹配特定正则表达式):    QStringList list;    list << “Bill Murray” << “John Doe” << “Bill Clinton”;    QStringList result;    result = list.filter(“Bill”);    // result: [“Bill Murray”, “Bill Clinton”]

02

QT QStringList 用法

QStringList类提供了一个字符串列表,从QList <QString>继承而来,它提供快速索引为基础的接入以及快速插入和清除 其成员函数用于操作这个字符串列表如append(),insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne()等 1. 增加字符串    可以通过append(),或使用<<,如    QStringList fonts;    fonts << “Arial” << “Helvetica” << “Times” << “Courier”;    // fonts:[ “Arial” ,”Helvetica”, “Times” , “Courier”] 2. 合并字符串使用join( )    QString str = fonts.join(“,”);    // str == “Arial,Helvetica,Times,Courier” 3. 拆分字符串    QString str = ” Arial,Helvetica, ,Times,Courier “;    QStringList list1 = str.split(“,”);    // list1: [ ” Arial “, ” Helvetica “,” “, ” Times “, ” Courier ” ]    QStringList list2 = str.split(“,”, QString::SkipEmptyParts);    // list2: [ ” Arial “, ” Helvetica “, ” Times “, ” Courier ” ]    也就是说如果有QString::SkipEmptyParts,空项不会出现在结果。默认情况下,空项被保留 4. 索引    IndexOf()函数返回给定字符串的第一个出现的索引。    而lastIndexOf()函数,返回字符串的最后一次出现的索引。 5. 替换replaceInStrings()    QStringList files;    files << “$QTDIR/src/moc/moc.y”    << “$QTDIR/src/moc/moc.l”    << “$QTDIR/include/qconfig.h”;    files.replaceInStrings(“$QTDIR”, “/usr/lib/qt”);    // files: [ “/usr/lib/qt/src/moc/moc.y”, …] 6. 过滤filter()    可以让你提取一个新的列表只包含这些字符串包含一个特定的字符串(或匹配特定正则表达式):    QStringList list;    list << “Bill Murray” << “John Doe” << “Bill Clinton”;    QStringList result;    result = list.filter(“Bill”);    // result: [“Bill Murray”, “Bill Clinton”]

02
领券