问题标签 [string-literals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 字符串引用不应该适用于 AndroidManifest 中意图过滤器的操作名称吗?
最初我的 AndroidManifest.xml 包含一个我通过其自定义操作名称访问的活动。
有了这个清单startActivity(new Intent("com.company.project.TestActivity"));
,我的活动就开始了,没有任何问题。
但我对这种编码风格并不满意。早些时候,我被告知不要使用内联定义的字符串常量,因为它会导致代码的可维护性降低。这确实是一个重点。
所以首先我ublic static final String MY_ACTION = "com.company.project.TestActivity";
在我的 App.java 类(我使用的那个)中声明了 ap 并通过这个命名常量以这种方式到达我的组件:
startActivity(new Intent(App.MY_ACTION));
这似乎好多了,但我仍然必须维护同一字符串的两个实例。在http://developer.android.com/reference/android/R.styleable.html#AndroidManifestAction_name阅读
...这也可能是对包含值的资源(形式为“@[package:]type:name”)或主题属性(形式为“?[package:][type:]name”)的引用这种类型的。
所以我猜想将这个字符串定义为JUST ONCE会很好。我输入<string name="MY_ACTION">com.company.project.TestActivity</string>
了我的 strings.xml 并修改了我的应用程序:
一切都还好
...直到我将 AndroidManifest.xml 更改为使用 <action android:name="@string/MY_ACTION" />
而不是<action android:name="com.company.project.TestActivity" />
. 在这个改变给我最大的惊喜之后,应用程序在运行时崩溃了,抱怨没有找到符合我意图的 Activity。字符串引用可能未正确解析。:(
也许问题是 R.string 依赖于配置......?但是,嘿,我不能这么疯狂地选择这样一个字符串引用,它的值可能会从一个配置变为另一个配置!developer.android.com 告诉我可以在动作名称中使用引用!我在 API 级别 6、7、8 结束时遇到了这种行为。这只是 android 系统中的一个简单错误吗?还是我误解了什么?
我完全困惑,请帮助我。提前致谢。
c++ - c++ 如何正确预定义 char* 数组?
我是这样做的:
但我注意到它已被弃用。什么是更好的方法?
c# - 如何自动转义路径
我有一个路径字符串c:\user\test\test.jpg
,我该怎么做c:\\user\\test\\test.jpg
?
django - 让 Django 忽略字符串文字
更新 2:问题根本不是 Django 问题 - Python 在到达 Django 之前肯定会删除字符。解决方法是将字符串定义为原始的
更新:事实证明,这是一个比我乍一看更深的问题 - 问题是 python 在字符串文字到达 django 之前正在替换它们。如果我找到解决方案,我会做更多的调查和更新。
我正在使用 django 使用 LaTeX 模板来生成报告,并且在 Django 替换部分字符串的方式上遇到了很多问题。
具体来说,我遇到了两个问题,我尝试插入一个包含乳胶代码的变量。
第一个是它会用它们的 HTML 代码替换 HTML 字符,例如小于符号,这对于 LaTeX 解释器来说当然是胡言乱语。我通过将上下文设置为从不自动转义来解决此问题,如下所示:
但是,我还有第二个问题,即 Django 将字符串文字替换为相应的字符,因此双反斜杠变为 \,而 \b 变为退格。我怎样才能强制 Django 将这些字符留在原处,所以
当我使用时不会被破坏
在 django 模板中引用它?
c# - 字符串文字识别问题
我试图通过读取每个符号的字符串来识别字符串文字。我的扫描仪骨架示例:
我的目标是解析类似帕斯卡的字符串:“{所有封闭的东西,但是”,只允许“”对}”。
c++ - 字符串文字中的符号 \0 是什么意思?
考虑以下代码:
str 数组的长度是多少,它以多少 0 结尾?
c - C -> sizeof 字符串始终为 8
为什么总是返回8???
java - 字符串驻留的搜索成本和文字字符串的声明
两个问题。
当我们声明字面量字符串时,我们会在堆的字符串池中查找是否有相同的字符串。这也是实习(方法实习生
String
)吗?在我看来,每个文字字符串声明都需要二进制搜索或其他东西,因此当n是池中现有字符串的数量时,它至少花费log(n) 。如果池中有很多字符串,则可能成本很高。(也许是搜索成本和内存的权衡?)从这个角度来看,声明 mant 文字字符串可能很危险。 这种搜索成本有多重要以及为什么以这种方式设计java(声明文字字符串时搜索池)。
以下是我所说的了解背景。
字符串是常量;它们的值在创建后无法更改。字符串缓冲区支持可变字符串。因为 String 对象是不可变的,所以它们可以被共享。
http://www.janeg.ca/scjp/lang/strLiteral.html评论:
换句话说,因为编译器知道字符串的原始值一旦创建就不能更改,它可以安全地使用现有数据并避免重复项使内存混乱。
python - python 正则表达式中的特殊字符问题
我在 xml 文件上应用了一些正则表达式来查找和替换值。通常它可以工作。(我听到声音说“使用 xml 解析器”。同时我不能。)但是如果值中有一个特殊字符,它会破坏一切。
认为我有一个如下的 xml 文件:
如果我尝试替换 " <idle2><value>
" 节点中的值," <idle1><value>
" 节点的值将变为 "something\n"。在写入文件时,xml 变为:
好吧,在搜索和替换中我都使用“r”字符串文字。但它似乎不起作用。我解决问题。对于每次搜索和替换,我将“\n”替换为“ \\n
”,然后将结果写入文件。但这不是一种有效的使用方式。
有什么我看不到的吗?我只想将“ \\n
”写入文件。这是我想要的这么多吗?
编辑:这是我的正则表达式:
搜索:
替换:
这是用于搜索的 python 代码:
这是为了替换