标签: string

Pythonic方式创建一个长多行字符串

我有一个很长的查询.我想在Python中将它分成几行.在JavaScript中实现它的一种方法是使用几个句子并将它们与+运算符连接(我知道,也许这不是最有效的方法,但我并不关心这个阶段的性能,只是代码可读性) .例:

var long_string = 'some text not important. just garbage to' +
                  'illustrate my example';
Run Code Online (Sandbox Code Playgroud)

我尝试在Python中做类似的事情,但它不起作用,所以我习惯\拆分长字符串.但是,我不确定这是否是唯一/最好/最好的方式.看起来很尴尬.实际代码:

query = 'SELECT action.descr as "action", '\
    'role.id as role_id,'\
    'role.descr as role'\
    'FROM '\
    'public.role_action_def,'\
    'public.role,'\
    'public.record_def, '\
    'public.action'\
    'WHERE role.id = role_action_def.role_id AND'\
    'record_def.id = role_action_def.def_id AND'\
    'action.id = role_action_def.action_id AND'\
    'role_action_def.account_id = ' + account_id + ' AND'\
    'record_def.account_id=' + account_id + ' AND'\
    'def_id=' + def_id
Run Code Online (Sandbox Code Playgroud)

python string multiline multilinestring

1160
推荐指数
21
解决办法
102万
查看次数

如何在Bash中将字符串转换为小写?

有一种方法可以将字符串转换为小写字符串吗?

例如,如果我有:

a="Hi all"
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

"hi all"
Run Code Online (Sandbox Code Playgroud)

string bash shell lowercase uppercase

1158
推荐指数
20
解决办法
83万
查看次数

如何从Python字符串中修剪空格?

如何从Python中的字符串中删除前导和尾随空格?

例如:

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"
Run Code Online (Sandbox Code Playgroud)

python string trim

1103
推荐指数
5
解决办法
113万
查看次数

endsWith在JavaScript中

如何检查字符串是否以JavaScript中的特定字符结尾?

示例:我有一个字符串

var str = "mystring#";
Run Code Online (Sandbox Code Playgroud)

我想知道该字符串是否以#.结尾.我怎么检查呢?

  1. endsWith()JavaScript中有方法吗?

  2. 我有一个解决方案是获取字符串的长度并获取最后一个字符并检查它.

这是最好的方式还是有其他方式?

javascript string ends-with

1085
推荐指数
14
解决办法
44万
查看次数

如何在Ruby中将字符串转换为小写或大写

如何在Ruby中使用字符串并将其转换为小写或大写?

ruby string lowercase uppercase

1081
推荐指数
7
解决办法
64万
查看次数

为什么使用'=='或'is'比较字符串有时会产生不同的结果?

我有一个Python程序,其中两个变量设置为该值'public'.在条件表达式中,我的比较var1 is var2失败了,但是如果我将其更改为var1 == var2它则返回True.

现在,如果我打开我的Python解释器并进行相同的"是"比较,它就会成功.

>>> s1 = 'public'
>>> s2 = 'public'
>>> s2 is s1
True
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

python string comparison identity equality

1076
推荐指数
13
解决办法
148万
查看次数

Ukkonen的简明英语后缀树算法

此时我觉得有点厚.我花了几天时间试图完全用后缀树构建我的头,但由于我没有数学背景,因为他们开始过度使用数学符号系统时,许多解释都没有.最接近我发现的一个很好的解释是使用后缀树进行快速字符串搜索,但是他隐藏了各种点,并且算法的某些方面仍然不清楚.

在Stack Overflow中对此算法的逐步解释对于我以外的许多其他人来说都是非常宝贵的,我敢肯定.

作为参考,这里是Ukkonen关于该算法的论文:http://www.cs.helsinki.fi/u/ukkonen/SuffixT1withFigs.pdf

到目前为止我的基本理解:

  • 我需要迭代给定字符串T的每个前缀P.
  • 我需要遍历前缀P中的每个后缀S并将其添加到树中
  • 要将后缀S添加到树中,我需要遍历S中的每个字符,迭代包括沿着现有分支向下走,该分支以S中的相同字符集C开头,并且当我可能将边缘拆分为后代节点时在后缀中找到不同的字符,或者如果没有匹配的边缘则向下走.当没有找到匹配的边缘向下走C时,为C创建一个新的叶边.

基本算法似乎是O(n 2),正如我们在大多数解释中所指出的那样,因为我们需要遍历所有前缀,然后我们需要逐步遍历每个前缀的每个后缀.由于他使用的后缀指针技术,Ukkonen的算法显然是独一无二的,尽管我认为是我无法理解的.

我也很难理解:

  • 确切地指定,使用和更改"活动点"的时间和方式
  • 算法的典型化方面发生了什么
  • 为什么我看到的实现需要"修复"他们正在使用的边界变量

这是完成的C#源代码.它不仅工作正常,而且支持自动规范化,并提供更好看的输出文本图形.源代码和示例输出位于:

https://gist.github.com/2373868


更新2017-11-04

多年以后,我发现了后缀树的新用途,并在JavaScript中实现了该算法.要点如下.它应该没有错误.npm install chalk从同一位置将其转储到js文件中,然后使用node.js运行以查看一些彩色输出.在同一个Gist中有一个精简版本,没有任何调试代码.

https://gist.github.com/axefrog/c347bf0f5e0723cbd09b1aaed6ec6fc6

language-agnostic string algorithm suffix-tree

1065
推荐指数
6
解决办法
16万
查看次数

我如何修剪空白?

是否有一个Python函数可以从字符串中修剪空格(空格和制表符)?

示例:\t example string\texample string

python string whitespace trim strip

1035
推荐指数
5
解决办法
109万
查看次数

为什么我不能在String上使用switch语句?

这个功能是否会被放入以后的Java版本中?

有人可以解释为什么我不能这样做,就像Java的switch声明的技术方式一样吗?

java string switch-statement

982
推荐指数
8
解决办法
73万
查看次数

如何检查字符串是否包含子字符串?

我有一个购物车,在下拉菜单中显示产品选项,如果他们选择"是",我想在页面上显示其他一些字段.

问题是购物车还包括文本中的价格修饰符,每个产品可能不同.以下代码有效:

$(document).ready(function() {
    $('select[id="Engraving"]').change(function() {
        var str = $('select[id="Engraving"] option:selected').text();
        if (str == "Yes (+ $6.95)") {
            $('.engraving').show();
        } else {
            $('.engraving').hide();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,我宁愿使用这样的东西,这是行不通的:

$(document).ready(function() {
    $('select[id="Engraving"]').change(function() {
        var str = $('select[id="Engraving"] option:selected').text();
        if (str *= "Yes") {
            $('.engraving').show();
        } else {
            $('.engraving').hide();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

如果所选选项包含单词"是",我只想执行操作,并忽略价格修饰符.

javascript string jquery substring contains

966
推荐指数
9
解决办法
158万
查看次数