电信宽带办理120的宽带

1522人阅读
Java(19)
例如:\345\244\247\345\256\266\345\245\275\343\200\202 对应汉字是“大家好。&8进制表示法.将以上每组按8成16进制是
E5 A4 A7 E5 AE B6 E5 A5 BD
汉字的UTF-8码, 以上三个字每字三字节.
如果用JS的话,可以用encodeURI方法进接对汉字进行编码,得到 %E5%A4%A7%E5%AE%B6%E5%A5%BD 然后将每组16进制转换为8进制,将%替换为\就行了.
//将“大家好。” 转成反斜杠加三数字(八进制转义序列)的java代码如下:public static void main(String[] args) throws Exception {
String str = URLEncoder.encode(&大家好。&, &UTF-8&);
String[] s = str.substring(1).split(&%&);
StringBuffer s8 = new StringBuffer();
for(int i=0;i&s.i++){
s8.append(&\\&+Integer.toOctalString(Integer.valueOf(s[i],16)));
System.out.println(s8.toString());
1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
\0:空字符
2.Unicode:\u + 四个字;0~65535
\u0000:空字符
\&:双引号
\\:反斜线
\f 走纸换页
\t 横向跳格
点的转义:. ==& u002E
美元符号的转义:$ ==& u0024
乘方符号的转义:^ ==& u005E
左的转义:{ ==& u007B
左方括号的转义:[ ==& u005B
左圆括号的转义:( ==& u0028
竖线的转义:| ==& u007C
右圆括号的转义:) ==& u0029
星号的转义:* ==& u002A
加号的转义:+ ==& u002B
问号的转义:? ==& u003F
的转义: ==& u005C
======================================================================
下面的程序使用了两个Unicode的,它们是用其代码来表示Unicode字符。那么,这个程序会打印什么呢?
public class EscapeRout{
public static void main(String[] args){
// \u0022 是双引号的Unicode转义字符
System.out.println(&a\u0022.length()
+\u0022b&.length());
public class EscapeRout{
public static void main(String[] args){
// \u0022 是双引号的Unicode转义字符
System.out.println(&a\u0022.length()
+\u0022b&.length());
对该程序的一种很肤浅的分析会认为它应该打印出26,因为在由两个双引号&a\u0022.length()+\u0022b&标识的字符串之间总共有26个字符。
稍微深入一点的分析会认为该程序应该打印16,因为两个Unicode转义字符每一个在源文件中都需要用6个字符来表示,但是它们只表示字符串中的一个字符。因此这个字符串应该比它的外表看其来要短10个字符。 如果你运行这个程序,就会发现事情远不是这么回事。它打印的既不是26也不是16,而是2。
理解这个谜题的关键是要知道:Java对在字符串字面中的Unicode转义字符没有提供任何特殊处理。编译器在将程序解析成各种符号之前,先将Unicode转义字符转换成为它们所表示的字符[JLS 3.2]。因此,程序中的第一个Unicode转义字符将作为一个单字符字符串字面(&a&)的结束引号,而第二个Unicode转义字符将作为另一个单字符字符串字面(&b&)的开始引号。程序打印的是表达式&a&.length()+&b&.length(),即2。
如果该程序的作者确实希望得到这种行为,那么下面的语句将要清楚得多:
System.out.println(&a&.length()+&b&.length());
更有可能的情况是该作者希望将两个双引号字符置于字符串字面常量的内部。使用Unicode转义字符你是不能实现这一点的,但是你可以使用转义字符序列来实现[JLS 3.10.6]。表示一个双引号的转义字符序列是一个后面紧跟着一个双引号(\”)。如果将最初的程序中的Unicode转义字符用转义字符序列来替换,那么它将打印出所期望的16(错误,应该是14,不知道是怎么会出来16):
System.out.println(&a\&.length()+\&b&.length());
许多字符都有相应的转义字符序列,包括(\')、换行(\n)、(\t)和反斜线(\\)。你可以在字符字面常量和字符串字面常量中使用转义字符序列。
实际上,你可以通过使用被称为八进制转义字符的特殊类型的转义字符序列,将任何ASCII字符置于一个字符串字面常量或一个字符字面常量中,但是最好是尽可能地使用普通的转义字符序列。
普通的转义字符序列和八进制转义字符都比Unicode转义字符要好得多,因为与Unicode转义字符不同,转义字符序列是在程序被解析为各种符号之后被处理的。
ASCII是的最小公共特性集,它只有128个字符,但是Unicode有超过65,000个字符。一个Unicode转义字符可以被用来在只使用ASCII字符的程序中插入一个Unicode字符。一个Unicode转义字符精确地等价于它所表示的字符。
Unicode转义字符被设计为用于在程序员需要插入一个不能用源文件表示的字符的情况。它们主要用于将非ASCII字符置于、字符串字面常量、字符字面常量以及注释中。偶尔地,Unicode转义字符也被用来在看起来颇为相似的数个字符中明确地标识其中的某一个,从而增加程序的清晰度。
总之,在字符串和字符字面常量中要优先选择的是转义字符序列,而不是Unicode转义字符。Unicode转义字符可能会因为它们在编译序列中被处理得过早而引起混乱。不要使用Unicode转义字符来表示ASCII字符。在字符串和字符字面常量中,应该使用转义字符序列;对于除这些字面常量之外的情况,应该直接将ASCII字符插入到源文件中。
1、JAVA转义序列:/question/.html
2、JAVA转义序列:/blog/1393718
3、反斜杠加3个数 是什么编码 :/question/.html&
refer to&http://blog.csdn.net/caimo/article/details/
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:149462次
积分:2914
积分:2914
排名:第11322名
原创:115篇
转载:28篇
译文:21篇
评论:11条
(10)(8)(1)(2)(2)(1)(2)(1)(1)(5)(4)(1)(6)(2)(4)(1)(2)(2)(6)(9)(15)(10)(6)(6)(6)(5)(11)(2)(1)(2)(1)(1)(1)(2)(7)(17)您所在的位置: &
标记扩展和XAML
标记扩展和XAML
本主题介绍可扩展应用程序标记语言 (XAML) 的标记扩展概念,包括其语法规则、用途以及底层的类对象模型。
本主题介绍可扩展应用程序标记语言 (XAML) 的标记扩展概念,包括其语法规则、用途以及底层的类对象模型。
&XAML 处理器和标记扩展 XAML 处理器是指可根据其规范(通过编译或解释)将 XAML 接受为语言、并且可以生成结果基础类以供运行时对象模型使用(也是根据 XAML 规范)的任意程序。默认情况下,此类处理器要么将属性值解释为一个文本字符串,要么基于属性类型或该属性特定的类型转换器将该属性值转换为对象。不过,有时也存在要求其他行为的情况。例如,可能指示 XAML 处理器:某个属性的值应该是对已构造对象或静态对象的引用。或者指示 XAML 处理器使用向对象的构造函数提供非默认参数的语法。相对于指定的 XAML 处理器默认行为,这是一种反常行为。
&基本标记扩展语法 可以实现标记扩展以便为属性 (Attribute) 用法中的属性 (Property) 和/或属性 (Property) 元素用法中的属性 (Property) 提供值。
当用于提供属性 (Attribute) 值时,将标记扩展与 XAML 处理器区分开来的语法就是左右大括号({ 和 })。然后,由紧跟在左大括号后面的字符串标记来标识标记扩展的类型。
当用在属性元素语法中时,标记扩展在外观上与其他任何用于提供属性元素值的元素相同,即:一个将标记扩展类作为一个元素引用并以尖括号 () 括起的 XAML 元素声明。
&特定于 WPF 的标记扩展 WPF 编程中最常用的标记扩展是支持资源引用的标记扩展(StaticResource 和 DynamicResource)以及支持数据绑定的标记扩展 (Binding)。
StaticResource 通过替换已定义资源的值来为 XAML 属性提供值。
DynamicResource 通过将值推迟为对资源的运行时引用来为 XAML 属性提供值。动态资源引用强制在每次访问此类资源时都重新进行查找。
Binding 按应用于元素的数据上下文来为属性提供数据绑定值。此标记扩展相对复杂,因为它会启用大量内联语法来指定数据绑定。
RelativeSource 为可以在运行时元素树中定位若干可能关系的 Binding 提供源信息。对于在多用途模板中创建的绑定,或在未充分了解周围的元素树的情况下以代码创建的绑定,上述标记扩展会提供专用源。
通过 TemplateBinding,控件模板可以使用来自要利用该模板的类的对象模型定义属性中的模板化属性的值。
XAML 定义的标记扩展 有几个标记扩展并非是 XAML 的 WPF 应用程序所特有的,而是属于 XAML 语言的规范和命名空间的一部分。它们通常由语法中的 x: 前缀标识,如您在常见用法中所见到的一样。这些标记扩展的 WPF 实现使用相同的 MarkupExtension 基类来提供实现。
说明: x: 前缀在 XAML 应用程序或文档的根元素中用于 XAML 命名空间的典型命名空间映射。例如,Microsoft Visual Studio 2005 模板使用此 x: 映射启动 XAML 文件。您可以在自己的 xmlns 映射中选择一个不同的前缀标记,但是本文档采用默认的 x: 映射,作为标识那些属于 XAML 命名空间已定义部分的实体的一种方式,这与 WPF 命名空间或其他任意命名空间是相反的。
x:Type 为命名类型提供 Type 对象。此标记扩展最常用于样式和模板。
x:Static 从不直接属于属性值类型、但可以计算为该类型的值类型代码实体中生成静态值。
x:Null 将 null 指定为 XAML 属性的值。
在特意不使用基元素和控件模型提供的集合支持的情况下,x:Array 为 XAML 语法中常规数组的创建提供支持。
有关标记扩展语法的更多信息
*Extension 类
每个标记扩展的行为都会通过从 MarkupExtension 派生的 *Extension 类通知给 XAML 处理器,并提供 ProvideValue 方法的实现。每个扩展的此方法都会定义在计算标记扩展后将返回哪个对象。通常,通过使用传递给标记扩展的各个字符串标记来对返回的对象进行实例化或设置。
例如,StaticResourceExtension 类提供实际资源查找的图面实现,以便其 ProvideValue 实现返回请求的对象,该特定实现的输入是用于按其 x:Key 查找资源的字符串。如果您使用的是现有标记扩展,则其中的大部分实现详细信息都无关紧要。
后续字符串标记的扩展类解释跟在标记扩展标识符后面、并且仍在括号内的字符串标记由 XAML 处理器通过以下方式之一解释:
逗号始终代表各个标记的分隔符。因此,文本逗号无法传递给标记扩展。
如果各个分隔的标记不包含任何等号,则每个标记都将被视为构造函数参数。每个构造函数参数都必须按该签名所期望的类型给出,并按照该签名所期望的顺序排列。
说明: XAML 处理器必须调用与对的数量这一参数计数匹配的构造函数。为此,如果您要实现自定义标记扩展,请不要提供具有相同实参计数的多个形参;对于当存在多个具有相同形参计数的标记扩展构造函数时将发生的情况,尚未定义相应的行为。
如果各个分隔的标记包含等号,则 XAML 处理器会首先为标记扩展调用默认构造函数。之后,每个“名称=值”对都会被解释为标记扩展上存在的属性名称以及赋给该属性的值。
如果在标记扩展中的构造函数行为与属性设置行为之间存在并行结果,则您使用哪个行为都无关紧要。如果仅仅因为将“属性=值”对用于具有多个可设置属性的标记扩展就可以令您的标记意图性更强,并减小意外转置构造函数参数的可能性(当您指定“属性=值”对时,这些属性可以为任意顺序),那么这种用法更常见。另外,无法保证标记扩展提供设置每个可设置属性的构造函数参数。例如,Binding 是一个标记扩展,具有多个可以通过“属性=值”形式的扩展来设置的属性,但 Binding 仅支持两个构造函数,即默认构造函数和一个设置初始路径的构造函数。
转义文本大括号XAML 处理器中的属性处理使用大括号作为标记扩展的指示符。必要时,还可以使用后面跟文本大括号的空大括号对来输入转义序列,从而生成文本大括号字符属性值。
嵌套扩展语法支持多个标记扩展的嵌套,并且将首先计算每个标记扩展的最里层,例如:
<SETTER Property="Background" P
Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
有关标记扩展和属性元素语法的更多信息
当用作填写属性元素值的对象元素时,标记扩展类在外观上与可用在 XAML 中的普通元素没有区别。这种情况下,普通元素与标记扩展之间的实际差异就在于标记扩展要么可计算为一个类型值,要么延迟为一个表达式,因此属性值的任何可能的类型错误的机制都将是不同的,这与后期绑定属性在其他编程模型中的处理方式类似。普通元素将计算为类型,而属性是在编译时直接设置的。
当用在对象元素语法中以填充属性元素时,大部分标记扩展都不会包含内容或任何进一步的属性元素语法,这样您就可以关闭对象元素标记,而不提供任何子元素。不论何时 XAML 处理器遇到任何对象元素,都会调用该类的构造函数以实例化从已分析元素创建的对象。标记扩展类也一样;因此,如果您希望自己的标记扩展在对象元素语法中可用,就必须提供默认构造函数。有些现有标记扩展至少具有一个必需的属性值,为了使初始化有效,必须指定该值。在这种情况下,通常会将该属性值作为对象元素的属性特性来指定。在 XAML 命名空间 (x:) 语言功能和 WPF 命名空间 XAML 扩展参考页中,将指出具有必需属性的标记扩展(以及必需属性的名称)。参考页还将指出特定标记扩展是否禁止使用对象元素语法或属性语法。一个值得注意的情况是 x:Array 标记扩展,它无法支持属性语法,因为必须指定该数组的内容。数组内容的处理方式与常规对象一样,因此属性没有默认类型转换器是可行的。另外,x:Array 标记扩展需要 Type 参数。
【责任编辑: TEL:(010)】
关于&&&&&&的更多文章
WPF是Microsoft新一代开发技术,涵盖了桌面应用程序开发、网络应
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
讲师: 3人学习过讲师: 7人学习过讲师: 7人学习过
一周一周的过的很快,2013年已经进入了倒计时。开发频
在脚本语言领域,Lua是最快、最高效的脚本语言之一,
2014年节假放假安于这周出台,80%的公民对此次的放假
Linux主要用于架设网络服务器。如今关于服务器和网站被黑客攻击的报告几乎每天都可以见到,而且随着网络应用的丰富多样,攻击的
51CTO旗下网站java 工具类、拦截器等等(2)
1.八进制转义序列:\ &#43; 1到3位5数字;范围'\000'~'\377'&
&&&&& \0:空字符&
2.Unicode转义字符:\u &#43; 四个十六进制数字;0~65535&
&&&& \u0000:空字符&
3.特殊字符:就3个&
&&&&& \&:双引号&
&&&& \':单引号&
&&&& \\:反斜线&
4.控制字符:5个&
\' 单引号字符&
\\ 反斜杠字符&
\f 走纸换页&
\t 横向跳&#26684;&
\b 退&#26684;&
点的转义:. ==& u002E&
美元符号的转义:$ ==& u0024&
乘方符号的转义:^ ==& u005E&
左大括号的转义:{ ==& u007B&
左方括号的转义:[ ==& u005B&
左圆括号的转义:( ==& u0028&
竖线的转义:| ==& u007C&
右圆括号的转义:) ==& u0029&
星号的转义:* ==& u002A&
加号的转义:&#43; ==& u002B&
问号的转义:? ==& u003F&
反斜杠的转义: ==& u005C
换行符在不同的系统下有不同的形式:
\n: & Mac os下的文本文件换行符&&&
\r: & unix下的文本文件换行符&&&
\r\n: & windows下的文本文件换行符
下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢?&
public class EscapeRout{&&&
&&& public static void main(String[] args){&&&
&&&&&&& // \u0022 是双引号的Unicode转义字符&&&
&&&&&&& System.out.println(&a\u0022.length()&&&
&#43;\u0022b&.length());&&&
public class EscapeRout{&
&&& public static void main(String[] args){&
&&&&&&& // \u0022 是双引号的Unicode转义字符&
&&&&&&& System.out.println(&a\u0022.length()&
&#43;\u0022b&.length());&
&&&&&&& 对该程序的一般的分析会认为它应该打印出26,因为在由两个双引号&a\u0022.length()&#43;\u0022b&标识的字符串之间总共有26个字符。&
&&&&&&& 稍微深入一点的分析会认为该程序应该打印16,因为两个Unicode转义字符每一个在源文件中都需要用6个字符来表示,但是它们只表示字符串中 的一个字符。因此这个字符串应该比它的外表看其来要短10个字符。 如果你运行这个程序,就会发现事情远不是这么回事。它打印的既不是26也不是16,而是2。&
&&&&&&& Java对在字符串字面常量中的Unicode转义字符没有提供任何特殊处理。编译器在将&程序解析成各种符号之前, 先将Unicode转义字符转换成为它们所表示的字符因此,程序中的第一个Unicode转义字符将作为一个单字符字符串字面常量(&a&)的结束引号,而第二个Unicode转义字符将作为另一 个单字符字符串字面常量(&b&)的开始引号。程序打印的是表达式&a&.length()&#43;&b&.length(),即2。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:17865次
排名:千里之外
原创:15篇
转载:12篇
(1)(1)(1)(1)(3)(5)(1)(1)(2)(1)(1)(1)(3)(1)(5)(1)商品名称:
评价得分:
其他谈论话题
多品类齐全,轻松购物
快多仓直发,极速配送
好正品行货,精致服务
省天天低价,畅选无忧

我要回帖

更多关于 电信宽带办理 的文章

 

随机推荐