自写字符串处理函数

2024-04-20

自写字符串处理函数(精选10篇)

篇1:自写字符串处理函数

作者: 字体:[增加 减小] 类型:

最近用jstl1.0 的时候经常要在页面上对字符串做改动,在网上找了一个写的不错的,借鉴一下

JSTL使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及session中的数据的访问非常方便,但是我们在实际应用中经常需要在页面调用对象的某些方法,例如我需要调用字符串的length方法来获取字符串的长度时,在以往的开发过程中我们必须把对象先转为String类,然后在调用其length方法,这样的代码繁琐而且容易出错,

因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。在JSTL的表达是中要使用一个函数,其格式如下

${ns:methodName(args....)}

在使用这些函数之前必须在JSP中引入标准函数的声明

<%@ taglib prefix=“fn” uri=“java.sun.com/jsp/jstl/functions” %>

下面是JSTL中自带的方法列表以及其描述

函数名函数说明使用举例contains判断字符串是否包含另外一个字符串containsIgnoreCase判断字符串是否包含另外一个字符串(大小写无关)endsWith判断字符串是否以另外字符串结束escapeXml把一些字符转成XML表示,例如<字符应该转为><${fn:escapeXml(param:info)}indexOf子字符串在母字符串中出现的位置${fn:indexOf(name, “-”)}join将数组中的数据联合成一个新字符串,并使用指定字符格开${fn:join(array, “;”)}length获取字符串的长度,或者数组的大小${fn:length(shoppingCart.products)}replace替换字符串中指定的字符${fn:replace(text, “-”, “•”)}split把字符串按照指定字符切分${fn:split(customerNames, “;”)}startsWith判断字符串是否以某个子串开始substring获取子串${fn:substring(zip, 6, -1)}substringAfter

获取从某个字符所在位置开始的子串

${fn:substringAfter(zip, “-”)}substringBefore获取从开始到某个字符所在位置的子串${fn:substringBefore(zip, “-”)}toLowerCase转为小写${fn.toLowerCase(product.name)}toUpperCase转为大写字符${fn.UpperCase(product.name)}trim去除字符串前后的空格${fn.trim(name)}

篇2:自写字符串处理函数

C语言 字符串的内存拷贝处理函数

。他们操作的对象是内存,然后可以接受任何类型的数据进行拷贝。

这个是里面的memcpy,然后我们一起查看一下MSDN看一看他的原型:

void *memcpy(void *dest,const void *src,size_t count);

与strcpy不同的就是添加了第三个参数,确定操作的字节数,然后参数类型还有返回类型都是void*

,这表示他可以拷贝任意类型的数据。

然后我们看一下实现:

memcpy:

void *my_memcpy(void *str,const void *Dstr,int count) //从内存地址开始改变,并确定改变长度,所以用万能类型去接受{ char *pstr = (char *)str; char *pDstr = (char *)Dstr;assert((str!=NULL) && (Dstr != NULL)); if(str == Dstr) //位置相同情况下直接返回需要改变的 return (char *)Dstr; while(count-- >0){*pstr++ = *pDstr++;} return str;}

然后会出现一个问题,如果我们拷贝的数据中Dstr的起始位置在STR操作之间,那么在改变str时会出现副作用,将导致我们的拷贝结果不正确,所以我们应该考虑到会覆盖的情况,

在函数库中有一个memmove函数。

memmove:

void *my_memmove(void *pst,const void *Dpst,int size){ void *p = pst; char *pstA = (char *)pst; char *pstB = (char *)Dpst;assert((pst != NULL) &&(Dpst != NULL)); if(pstB

篇3:运用perl轻松处理字符串

Perl有强大的字符串处理能力,尤其是在正则表达式上的应用、语法及程序结构等方面,perl能提高字符串处理的速度。

一、Perl语言特点

Perl不随意限制数据的大小,只要你有充足的内存。递归的深度也不受限制。关联数组使用可以根据需要扩展以避免性能衰退。Perl能利用复杂的模式匹配技巧来快速扫描大量数据。除了善于处理文本,Perl也能处理二进制数据[2]。

Perl语言的优点:(1)强大的正则表达式和模式匹配功能(接近理想的正则表达式语言);(2)复杂灵活的数据结构 (Array of Array,Array of Hash,Hash of Array,Hash of Hash等);(3)Unicode支持(相对AWK与C)

Perl语言的缺点:(1)动态类型语言,不是很可靠;(2) 自然语言,是优点也是缺陷,使得Perl语言代码可能晦涩难懂;(3)智能语言,是优点也产生不足:根据上下文解释编程者之意,可能产生臆断;也因此产生种种编程陷阱;(4) 不是很优美。多种方法做事,有时会让编程者无所适从; (5)性能问题。Perl灵活的数据结构和处理性能通常不是很高(相对C/C++),若需要高性能的处理有时需要使用其它语言重写。

二、字符串操作的相关知识

1、基本字符串操作

(1)运用substr取子串

substr ($string,$initial_position,$length) 它的三个参数为:一个字符串、一个从零算起的初始值以及子串的长度。 例如:

my $word=substr (“good morning”,5,4);$word里存放的子串为“morn”。

(2)运用index寻找子串

Index ($big,$small)perl会在$big字符串里寻找$small字符串首次出现的地方,并返回一个整数代表第一个字符出现的位置。所返回的字符位置是从零算起的。如果子串是在字符串最开始的位置找到的,那么index会返回0,如果是在第二个字符,则返回值为1;如果无法找到字符串, 那么会返回 -1。例如:

my $where=index(“Hello Word!”,”Wor”);$where的值为6。

2、正则表达式

(1)以s/// 进行替换

此操作符会对所指定的变量进行模式匹配,然后把匹配到的部分替换成所指定的字符串;如果匹配失败则不进行替换。例如:

$_=”There are three people in my family”;

s/three/four/;存放在$_ 里的字符串中的three被替换为four,如果用s/thee/four/;则由于没有找到thee,存放在$_ 中的字符串不发生变化。

(2)以 /g进行全局替换

对上面的变量进行全局替换,如s/re/A/g;则存放在$_ 中的字符串变为:”The A a A th Ae people in my family”。

(3)Split操作符

根据分隔符拆开一个字符串,这里的分隔符可以是制表符、冒号、空白以及任意字符。例如:

@fields=split “:”,”ab:cd:ef:g”;则 @fields中存放 ” ab”、”cd”、”ef”、”g”。

(4)Join函数

Join函数所达到的效果与split正好相反,split会将字符串分解为若干个片段,而join会把这些片段连接成一个字符串。例如:

$result=join “:”,@fields;$result中存放的 字符串为 ” ab:cd:ef:g”。

三、实例分析

“利用 /v光源 /n和 /c图像 /n传感器 /n的 /u聚焦 /v系统 /n 。/wp”为存放在文本文件a.txt中的一行。下面一段程序实现基本的字符串处理。# 后为对应语句的注释。

四、结语

篇4:自写字符串处理函数

关键词 Java 多线程 字符串 移动处理

一、对线程的理解

Thread 线程=new Thread(this);//创建线程

Thread顾名思义就是线程的意思,要知道Thread就要先知道线程是什么,它是一个程序的多个执行路径,执行调度的单位,依托于进程才能存在。

二、具体实现方法与代码

注意:()里和代码中的中文只是期待一个解释总要,需要使用代码的时候需要修改成相应的字符串。首先我们需要创建线程,利用类Thread 线程=new Thread(this)开始创建线程,然后创建控制按钮,进行事件处理,我们可以BUTTON 按钮1 = new 按钮("改变"),依次BUTTON 按钮2 = new 按钮("开始");BUTTON 按钮3 = new 按钮("停止");BUTTON 按钮4 = new 按鈕("暂停")等定义任何你需要的按钮控件。最后我们再用TextField定义一个文本new TextField()。

三、多线程对字符串处理

导入需要的大类,这里包含用于创建用户界面和绘制图形图像的所有分类。在 AWT 术语中,诸如按钮或滚动条之类的用户界面对象称为组件。

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

对于java.swing这个类包比java.awt提供了更为优化的用户界面,完全取代当然说不上。不同的方法总会有不同的应用。AWT的界面是通过调用当前系统的界面元素来实现的,他的样子完全依赖于系统。而Swing,是后来被重新使用java编写的。他是完全使用java做出来的,不依赖任何操作系统。所以可以达成同一程序,在不同操作系统中界面的同一。避免了awt更换运行的操作系统后布局、颜色、框架的混乱。而且swing增加了很多新功能新方法,使编程人员能更好的绘制界面。引用了大类后,我们就可以写一个公共的窗口类,它可以继承JFrame和接口函数Runnable,再调用一个ActionListener做为动作监听函数。具体写法的公共类extends(继承) JFrame implements(接口函数) Runnable,ActionListener。这里我们写一个图像处理的方法来用多线程调用。首先我们写出public void paint(Graphics g)其中括号中g为图像参数。我们需要用到方法update(参数g)来更新,g.setColor(new Color(数字,数字,数字))来设置颜色,因为是颜色所以这里的数字范围是0-255,我们还可以设置字体g.setFont(new Font("字体", Font.BOLD, 35)),最后再g.drawString(s,x,y)绘出字符串。

从这里开始我们就是重点了,我们需要写一个run()来调用上面写好的函数,这里是线程体,运行的地方。最后我们需要定义一个公共窗口方法来排版和呈现。比如:A=this.getContentPane()来得到这个面板,设置他的大小this.setSize(数字,数字)和设置他的标题this.setTitle("字符串的移动,jx制作")。设置他的位置text.setBounds(数字,数字,数字,数字);再调用addActionListener(this)方法对相对性的控件添加监听。再用A.add(控件)添加控件到面板上。就可以方便的把按钮控件,文本控件添加到面板中了。最后对事件的监听,我们可以写出一些判断来执行我们所需要的结果。写个公共的方法actionPerformed(ActionEvent e),If判断(e.getSource()==按钮1)那么s=text.getText()再用repaint(),If判断(e.getSource()==按钮2)那么If判断(!线程.isAlive() )之后就用new Thread(this)新建一个线程来start()来运行。移动的机制主要是每点击一次按钮,时间监听就改变一下文本控件在面板中的位置,再重绘一遍,这样看一起来就像移动一样。

参考文献:

[1]李鹏,邵明刚.并行计算技术[J].中国科技信息, 2006(07).

[2]崔立剑,吴平.Java多线程设计模式研究[J].计算机与现代化,2006(11).

[3]胡雯,赵海廷.JAVA多线程同步问题研究[J].软件导刊, 2007(01).

[4]龚成清.Java多线程的创建和线程同步的实现[J].宁波职业技术学院学报, 2007(02).

篇5:PHP中的字符串函数说明PHP

PHP中的字符串操作功能是比较多的,重要的有以下这些:

(1)echo,print,printf,sprintf

前两个函数是输出字符串.字符串中如果有变量名则被替换成其值.

后两个函数类似于C的同名函数.

(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower,

strtoupper,substr,ucfirst

这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致.

strrev是把一个字符串翻转.

strtolower和strtoupper的意思应该不用解释了.

ucfirst是把字符串的第一个字符变成大写.

substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).

头位置是从0算起的.如果是负数,则是从尾部向前数的意思.

(3)Chr,Ord

类似于C的同名函数.

(4)explode,implode,join

这些是和数组有关的函数.

explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组.

implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串.

join与implode意义相同.

(5)Chop

去掉字符串尾部的空白.

(6)htmlspecialchars

将字符串中的HTML特殊字符换成它们的名字,例如“<”变成“<”.

(7)nl2br

在字符串中的每一个回车前面加上“

”.

(8)AddSlashes,StripSlashes

分别给字符串中需要加上“”才能用于数据库查询的字符加上和去掉“”.

(9)parse_str

将“name1=value1&name2=value2&...”类型的字符串分析成一些变量.

例如:

parse_str(“a=1&b=2”);

生成$a与$b两个变量,值分别为1,2.

如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的.

如果这两对的名字尾部都有“[]”,例如“a[]=1&a[]=2”,则生成数组$a,两个元素分别为1,2

篇6:自写字符串处理函数

写一个函数,用于比较两个字符串的比较(string_compare).

程序分析:

(1)主要思想:传入两个字符串后,比较这两个字符串中的每个元素,如果第一次比较就不相等,就不要让它进入到下面的比较中,这样一来,将它返回一个相减的值(即:两数组中开始不相等的那两个元素相减,返回值(int类型),是ASCII码值相减)。进入比较的过程中时,相等就返回0;其他情况都返回那个相减的值。

(2)主要方式:定义指针数组,并对其初始化。然后照上面的思想,进行代码的实现。

代码如下:

篇7:自写字符串处理函数

题目:回调函数实现冒泡排序 排整数也可排字符串 n为数组元素大小

#define _CRT_SECURE_NO_WARNINGS 1#include #include #include //交换函数 交换n1 n2指向的变量 按字节交换 交换size个字节的大小void swap(char *n1, char *n2,int size){int i = 0;while(i < size){char temp = *(n1 + i);*(n1 + i) = *(n2 + i);*(n2 + i) = temp;i++;}}//整数比较函数int int_cmp(const void *elem1,const void *elem2){return (*(int *)elem1 - *(int *)elem2);}//字符串比较函数int str_cmp(const void *s1, const void *s2){ //return strcmp((char *)*(int *)s1, (char *)*(int *)s2);return strcmp((char *)*(int *)s1, (char *)*(int *)s2);//由字符串指针数组的数组元素的地址s1找到s1元素中存放的地址内容}//回调函数实现冒泡排序 排整数也可排字符串 n为数组元素大小void bubble(void *base, int n, int size,int(*cmp)(const void *elem1, const void *elem2 )){int i = 0;int j = 0;for (i = 0;i < n - 1;i++){for (j = 0;j < n - 1 - i; j++){if (cmp((char *)base + j*size, (char *)base + (j + 1)*size) > 0){swap((char *)base + j*size, (char *)base + (j + 1)*size, size);}}}} int main { int arr_int[]={10,9,8,7,6,5,4,3,2,1}; int i = 0; char *S[] = {“rrrrrrrrrrrrr”,“aaaaaaaaaaa”,“bbbbbbbbbbb”,“hhhhhhhhh”,“eeeeeeeeeeee”}; bubble(arr_int,10,sizeof(int),int_cmp); for(i = 0;i < sizeof(arr_int)/sizeof(arr_int[0]);i++) {printf(“%d ”,arr_int[i]); } printf(“n”); bubble(S,sizeof(S)/sizeof(S[0]),sizeof(char *),str_cmp); for(i = 0;i < sizeof(S)/sizeof(S[0]);i++) printf(“%sn”,S[i]); printf(“n”);system(“pause”);return 0; }

篇8:自写字符串处理函数

编注:CONCATENATE 函数简介

适用范围: Microsoft Office SharePoint Server , Windows SharePoint Services 3.0

功能:将多个文本字符串合并为一个文本字符串。

语法:CONCATENATE(text1,text2,...)

Text1, text2,... 1 到 30 个将要合并为单个文本项的文本项。这些文本项可以是文本字符串、数字或列引用。

Phonetic函数的帮助文件解释为“该函数只适用于日文版”,按理说,它不应该出现在中文版Excel中。可事实上,它一直存在,只是没人使用过它,因为此函数是用来提取日文文本字符串中的拼音字符的。

一个偶然的机会,我发现此函数可以用在中文版Excel中。在D1单元格输入公式=PHONETIC(A1:C4),得到的结果正是我们梦寐以求的“合并区域字符”。在中文版Excel中使用此函数时,帮助文件中的说明(如果reference为单元格区域,则返回区域左上角单元格中的furigana文本字符串,

如果reference为不相邻单元格的区域,将返回错误值#N/A)纯属“误导”。

微软在线帮助:

PHONETIC函数

适用范围: Microsoft Office Excel

功能:提取文本字符串中的拼音 (furigana) 字符。该函数只适用于日文版。

语法:PHONETIC(reference)

Reference 为文本字符串或对单个单元格或包含 furigana 文本字符串的单元格区域的引用。

说明

如果 reference 为单元格区域,则返回区域左上角单元格中的 furigana 文本字符串。

如果 reference 为不相邻单元格的区域,将返回错误值 #N/A。

以下是此函数的一个实例。比较表二中数据是否有与表一数据完全重复。在J2单元格输入公式=SUM((PHONETIC(OFFSET($A$2:$D$2,ROW($1:$5),))=PHONETIC(F3:I3))*1)按三键(CTRL+SHIFT+ENTER)结束录入,向下复制公式,如表二数据与表一有完全重复,则公式结果会大于等于1,否则为0。

篇9:自写字符串处理函数

是否为空字符 static booleanisEmpty(CharSequence str)

拆分字符串public static String[] split (String text, String expression) ,Android开发网提示大家仔细看例子如下 String.split returns ['] when the string to be split is empty. This returns []. This does not remove any empty strings from the result. For example split(“a,”, “,” ) returns {“a”, “”}.

拆分字符串使用正则 public static String[] split (String text, Pattern pattern)

确定大小写是否有效在当前位置的文本TextUtils.getCapsMode(CharSequence cs, int off, int reqModes)

使用HTML编码这个字符串static StringTextUtils.htmlEncode(String s)

?

1

2

3

4

5

6

if (!TextUtils.isEmpty(spUtil.getUserId())) {

Intent intent = new Intent(WelcomeActivity.this,

MainActivity.class);

startActivity(intent);

} else {

startActivity(new Intent(WelcomeActivity.this,

FirstSetActivity.class));

篇10:自写字符串处理函数

center()方法返回集中在长度宽度的字符串,填充是通过使用specifiedfillchar。默认填充字符是一个空格。

语法

以下是center()方法的语法:

str.center(width[, fillchar])

参数

width -- 这是字符串的总宽度。

fillchar -- 这是填充符,

返回值

此方法返回集中在长度宽度的字符串。

例子

下面的示例演示center()方法的使用。

#!/usr/bin/pythonstr = “this is string example....wow!!!”;print “str.center(40, ‘a‘) : ”, str.center(40, ‘a‘)

当我们运行上面的程序,它会产生以下结果:

上一篇:会员卡任务分配下一篇:海底两万里导读教案

本站热搜