摘要:我国著名青少年教育家孙云晓先生曾说:“好习惯对儿童来说是命运的主宰,是成功的轨道,是终身的财富,是人生的格调”。……
我国著名青少年教育家孙云晓先生曾说:“好习惯对儿童来说是命运的主宰,是成功的轨道,是终身的财富,是人生的格调”。因此,作为父母,一定要在孩子的习惯培养上下大功夫。培养孩子的良好习惯可从以下几个方面做起:
(一)生活习惯
生活是人生第一课,也是最基本的课程,生活习惯的好坏,不仅影响幼儿的身心健康而且也是幼儿综合素质的体现。它包括饮食、 起居、排便、卫生等习惯,做到按时睡眠、起床、安静睡眠并有正确的睡姿,不挑食、不偏食、细嚼慢咽,饭前便后正确洗手、早晚刷牙,饭后漱口等。父母要根据 孩子的年龄特点,适当为孩子立规矩,如:玩具玩完后必须放回原处,逐渐养成自己的东西自己整理和爱清洁,讲卫生,有条理的好习惯。
(二)文明礼貌习惯
礼貌看起来是种外在行为的表现,实际上它反映着人的内心修养,体现一个人自尊和尊重他人的意识。父母要教育孩子,学习使用文明礼貌用语,如“您好 ”、“请”、“谢谢”、“对不起”、“请原谅”。同时,要注意培养孩子的文明举止,见人要热情打招呼,别人问话要先学会倾听,并有礼貌地回答,保持服装整 洁,站有站相,坐有坐相。
(三)道德习惯
养成良好的道德习惯,幼儿才能和别人友好相处,积极追求美好的事物,自觉遵守社会行为规范,具有高度责任感,将来才能成为社会上成熟可敬的人。它包 括各种行为规则,尊敬关爱长辈,不随地地大小便、不损坏花草、树木、爱护公共财务,遵守交通规则,能换位思考、团结友爱等等。
(四)学习习惯
良好的学习习惯对幼儿的学习兴趣与学习成绩有很大的影响,与幼儿的成材直接相关。它包括自主学习、合作学习、探究性学习。学习好的孩子学习习惯都比 较好,而学习不好的孩子多数并不是因为脑子笨,而是没有良好的学习习惯。如:不长时间看电视、玩电脑游戏,不需要父母的督促、陪伴能自觉完成学习任务,学 习专心认真,经常进行广泛的阅读,知道珍惜时间,什么时间做什么事情等。
(五)思维习惯
良好的思维习惯有助于孩子从正确的角度和方面思考问题,有助于孩子能力的锻炼,知识的获取以及运用所学的知识灵活的解决问题。如:感觉接触了解新鲜事物,善于观察,勤于动脑,遇到问题能独立思考和解决。特别是要具有创新精神和创新能力。
(六)劳动习惯
培养孩子爱惜劳动成果,孩子劳动不是为了创造物质和精神财富,而是为了培养初步的劳动习惯,促进孩子身心健康成长。要求自己能做的事情自己做,自己穿脱衣服、学着铺床叠被等,另外帮父母干些家务活,如:帮助摆碗筷、擦桌、扫地、倒垃圾等等。
值得注意的是,在培养孩子各种良好习惯的同时,父母首先要转变自己的观念,增长培养意识,提高自身素质,以身作则。在进行培养时还要注意方式方法,坚持不懈,严格要求。总而言之,播下一种行动,收获一种习惯;播下一种习惯,收获一种命运。
awk提供了许多强大的字符串函数,见下表:awk内置字符串函数
gsub(r,s)
在整个$0中用s替代r
gsub(r,s,t)
在整个t中用s替代r
index(s,t)
返回s中字符串t的第一位置
length(s)
返回s长度
match(s,r)
测试s是否包含匹配r的字符串
split(s,a,fs)
在fs上将s分成序列a
sprint(fmt,exp)
返回经fmt格式化后的exp
sub(r,s)
用$0中最左边最长的子串代替s
substr(s,p)
返回字符串s中从p开始的后缀部分
substr(s,p,n)
返回字符串s中从p开始长度为n的后缀部分
详细说明一下各个函数的使用方法。gsub函数有点类似于sed查找和替换。它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行。第一个函数作用于记录$0,第二个gsub函数允许指定目标,然而,如果未指定目标,缺省为$0。index(s,t)函数返回目标字符串s中查询字符串t的首位置。length函数返回字符串s字符长度。match函数测试字符串s是否包含一个正则表达式r定义的匹配。split使用域分隔符fs将字符串s划分为指定序列a。sprint函数类似于printf函数(以后涉及),返回基本输出格式fmt的结果字符串exp。sub(r,s)函数将用s替代$0中最左边最长的子串,该子串被(r)匹配。sub(s,p)返回字符串s在位置p后的后缀。substr(s,p,n)同上,并指定子串长度为n。现在看一看awk中这些字符串函数的功能。
1.gsub要在整个记录中替换一个字符串为另一个,使用正则表达式格式,/目标模式/,替换模式/。例如改变学生序号4842到4899:
$ awk ‘gsub(’4842/, 4899) {print $0}’ grade.txtJ.Troll 07/99 4899 Brown-3 12 26 26
2.index查询字符串s中t出现的第一位置。必须用双引号将字符串括起来。例如返回目标字符串Bunny中ny出现的第一位置,即字符个数。
$ awk ‘BEGIN {print index(”Bunny”, “ny”)} grade.txt4
3.length返回所需字符串长度,例如检验字符串J.Troll返回名字及其长度,即人名构成的字符个数。
$ awk ‘$1==”J.Troll” {print length($1) ” “$1}’ grade.txt7 J.Troll
还有一种方法,这里字符串加双引号。
$ awk ‘BEGIN {print length(”A FEW GOOD MEN”)}’14
4.matchmatch测试目标字符串是否包含查找字符的一部分。可以对查找部分使用正则表达式,返回值为成功出现的字符排列数。如果未找到,返回0,第一个例子在ANCD中查找d。因其不存在,所以返回0。第二个例子在ANCD中查找D。因其存在,所以返回ANCD中D出现的首位置字符数。第三个例子在学生J.Lulu中查找u。
$ awk ‘{BEGIN {print match(”ANCD”, /d/)}’0$ awk ‘{BEGIN {print match(”ANCD”, /C/)}’3$ awk ‘$1==”J.Lulu” {print match($1, “u”)} grade.txt4
5.split使用split返回字符串数组元素个数。工作方式如下:如果有一字符串,包含一指定分隔符-,例如AD2-KP9-JU2-LP-1,将之划分成一个数组。使用split,指定分隔符及数组名。此例中,命令格式为(”AD2-KP9-JU2-LP-1″,parts_array,”-”),split然后返回数组下标数,这里结果为4。还有一个例子使用不同的分隔符。
$ awk [...]
当你在编写一个程序时,有时不得不把字符写进文件里去。
正在装载数据……
如下面的:
import java.io.*;
public class Encode1 {
public static void main(String args[])
throws IOException {
Writer writer = new FileWriter(”out”);
writer.write(”testing”);
writer.close();
}
}
当你在solaris 系列的操作系统或windows 平台运行时,文本文件out 只有7字节。这就是你预期的结果。
但这里还是有一个重要的问题。Java 字符是16位,这就是说每个字符是2 个字节长。程序Encode1把7个字符写进了文件out里了。并且结果是一个7字节长的文件。你可能要问:其它字符到那儿去了。难道这里把14个字节写进了文件中了吗。
这个问题归结为“字符编码”了。这个问题是怎样把在java中的16位字符映射成8位字节保存到文件中去。事实上,这里有一非常好的机制,而不是简单的放大、缩小8位或16位,因为在全世界几百种字符编码在使用。这就是说:这种特殊的8位字符序列需要因不同平台、及场所而重新组合成java字符串。
Java系统是通过你因不同的需要而选择特殊编码配置来解决这个问题的。同时它也提供一默认的字符编码基于你的平台和环境。像上面的实例,java系统支持默认的字符编码进行i/o操作。另外,你也可以指定其它的编码(字符集)。这些字符编码是一字符串来描述,比如:”utf-8”。也可以是java.nio.charset.Charset 类的一个实例。Charset 是一抽象类,所以事实上这个实例是Charset 类的子类。
在Encode1例子中,解决编码问题的一种方法是把字符分解成两个字节写进文件中去。竟管这个文件可能没有字节散布在这里面。另外一种办法是把java字符中的高位抛弃。这种办法在上面的例子可以用,但你尝试写一希腊、日语字符串就不会成功了。
在这个例子中实际是用第二种方法来处理的(它的高位字节抛弃)。如果你在Encode1例子中把输出行:writer.write(”testing”); 改成:writer.write(”testing\u1234″); 这输出行的总长将是8字节而不是7字节了。竟管如此,这统一编码字符\u1234 还是不能以一个字节显示出来。
在前面讨论中的“抛弃“有两种意思。如果java字符的高位是0,就像字符是以7位ASCII表示,那么“抛弃”的意思是舍去高位字节。另外一种意思是在某种的环境下你不可能用映射使用一特殊的字符。在这种可能情况下字符(2个字节)可能被一默认的置换字节所取代。就像上面例子中的/u1234 由0×3f 取代了。
下面让我们来看看怎样使用字符集、在字符与字节之间映射。一个基本的问题是:那些字符集是可用呢?下面这个程序演示了一个列表:
import java.nio.charset.*;
import java.util.*;
public class Encode2 {
public static void main(String args[]) {
Map availcs = Charset.availableCharsets();
Set keys = availcs.keySet();
for (Iterator iter =
keys.iterator();iter.hasNext();) [...]