`
tory320
  • 浏览: 34007 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java和javascript中实现ucwords

阅读更多
学习PHP的过程中发现了函数ucwords()方法,一想java中好像没有类似的方法。于是觉得自己动手实现一下。
开始是这样写的
public static String capitalize(String str) {
		String[] words = str.toLowerCase().split(" ");
		StringBuffer sb = new StringBuffer();
		for (String word : words) {			
			String newword = word.replace(word.substring(0, 1), word.substring(0, 1).toUpperCase());
			sb.append(newword).append(" ");			
		}		
		return sb.toString();
	}

写完一测试就发现问题了,对于java中的replace方法是 使用指定的字面值替换序列替换此字符串匹配字面值目标序列的每个子字符串
于是对于"I llove you"字符串就会出现问题.
思考了一下,将上面的方法改成了
public static String capitalize(String str) {
		String[] words = str.toLowerCase().split(" ");
		StringBuffer sb = new StringBuffer();
		for (String word : words) {			
			/*String newword = word.replace(word.substring(0, 1), word.substring(0, 1).toUpperCase());
			sb.append(newword).append(" ");*/
			
			char[] chs = word.toCharArray();
			chs[0]=(char)(chs[0]-32);
			
			String newWord = new String(chs);
			sb.append(newWord).append(" ");
			
		}
		
		return sb.toString();
	}


写完java的后,有想了一下javascript中的实现方法
function capitalize(str) {
   var words = str.split(" ");
   for (var word in words) {
     //words[word] = words[word].replace(words[word].substr(0, 1), words[word].substr(0, 1).toUpperCase());
	 words[word] = words[word].substring(0,1).toUpperCase()+words[word].substring(1);
   }
   
   return words.join(" ");
}

另外奇怪的是,javascript中用我注释掉的代码也能实现。查了下资料,才知道javascript中的replace()方法是
字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
同时还得到另一个实现方式:
name = 'aaa bbb ccc';
uw=name.replace(/\b\w+\b/g, function(word){
  return word.substring(0,1).toUpperCase()+word.substring(1);}
  );

以及css对文本的转换
input.cap {text-transform: capitalize;}

但是css只是显示效果变了,但通过value取的值并没变
分享到:
评论

相关推荐

    php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)

    总的来说,`ucwords()` 是 PHP 中一个非常有用的字符串处理工具,它能够帮助开发者快速实现字符串的格式化,使得输出的内容更加规范和易于阅读。在编写代码时,根据实际需求灵活运用此函数,可以提升程序的可读性和...

    原生php实现mvc模式

    MVC(Model-View-Controller)设计模式是一种广泛应用于Web开发中的架构模式,它的主要目标是将业务逻辑、数据处理和用户界面分离,从而提高代码的可维护性和可扩展性。在PHP中,我们可以不依赖任何框架,原生地实现...

    达内学习笔记----PHP基础+MYSQLS基础+JS笔记整理.docx

    `var_dump()`在JavaScript中对应的可能是`console.log()`,用于打印变量信息。`typeof`可以检查变量类型。JavaScript的日期对象`Date`提供了日期和时间处理功能。字符串处理方面,JavaScript也有类似`trim()`、`...

    php实现字符串首字母大写和单词首字母大写的方法

    PHP语言提供了内置函数.ucfirst和ucwords来实现这一功能,它们分别用于将字符串中的第一个字符或者字符串中每个单词的首字母转换为大写。以下详细说明这两种函数的使用方法和技巧。 首先,我们来看一下ucfirst函数...

    PHP常用函数和常见疑难问题解答

    虽然在整体功能上可能不及Java全面,但PHP在轻量级应用和快速开发中占据优势,甚至大型网站如淘宝也会结合Java,利用PHP进行前端展示。本文将详细介绍一些PHP中的常用函数和常见问题的解决方法,对于初学者来说是很...

    Smarty模板变量与调节器实例详解

    模板变量和调节器是Smarty模板中的核心组成部分,它们决定了模板如何接收和处理数据。 在Smarty模板中,变量被定义在双花括号中,例如:`{$variable}`,这是模板变量的标准格式。与直接在PHP中使用`$variable; ?>`...

    第4套PHP面试题1

    1) 将"open_door"转换为"OpenDoor",可以使用PHP内置的ucwords()函数,或者自定义函数通过explode()和ucfirst()实现。 2) 将数字格式化为每3位加逗号,可以使用PHP的number_format()函数,或者自定义函数通过strrev...

    PHP CookBook 3rd Edition

    9. 在字符串中插入函数和表达式:通过字符串连接或`echo`语句中的变量插入,可以在字符串中插入动态内容。 10. 去除字符串两端的空白:使用`trim()`、`ltrim()`和`rtrim()`函数可以去除字符串两端的空格或其他特定...

    PHP的面试题PHP

    可以使用PHP内置函数`ucwords()`结合字符串替换来实现: ```php function convertString($str) { $words = explode('_', $str); return ucwords(implode('', $words)); } echo convertString("open_door"); // ...

    php实现字符串首字母转换成大写的方法

    php中可以通过ucfirst函数将一个字符串中的第一个字母转换成大写,而ucwords函数可以将一个字符串中每个单词的首字母转换成大写 <?php $string = php string functions are easy to use.; $sentence = ucfirst($...

    PHP 笔记001 - 字符串、正则表达式

    - 字符串函数如`strtoupper`、`strtolower`、`ucfirst`、`ucwords`、`substr`和`strtr`用于字符串的大小写转换、截取和替换。 - `iconv`和`mb_convert_encoding`函数可以用于字符串的编码转换。 - 字符串查找函数...

    基于php常用函数总结(数组,字符串,时间,文件操作)

    ucwords()函数则将字符串中每个单词的首字母都转换为大写。strcmp()函数用于比较两个字符串。substr_count()函数用于计算子串在字符串中出现的次数。 在PHP中处理时间日期也是非常常见的需求,PHP提供了丰富的函数...

    JS-practice-OOP

    OOP分配 65. JavaScript OOP基础 ... ucFirst()方法,将字符串作为参数,并返回相同的字符串,将第一个字母大写,并使用ucWords方法,该方法采用一个字符串并将该字符串中每个单词的第一个字母大写。 实现一个Val

    php源文件字符操作

    4. **大小写转换**:`strtoupper()`和`strtolower()`分别用于转换为大写和小写,`ucwords()`首字母大写。 5. **去除空格**:`trim()`删除字符串两端的空白字符,`ltrim()`和`rtrim()`分别只去除左边和右边的空格。 ...

    php常用函数 学习整理

    - `ucfirst()`和`ucwords()`:首字母大写,`ucwords()`则将每个单词的首字母大写。 - `htmlentities()`和`htmlspecialchars()`:用于HTML编码,防止XSS攻击。 - `addslashes()`和`stripslashes()`:添加和移除反...

    面试题php基础.pdf

    - 对于字符串的大小写转换,可以使用`ucwords()`函数将字符串中每个单词的首字母转换为大写。 ### 数据库操作与正则表达式 - 在数据库操作中,当使用自增主键字段时,删除记录并不会影响已生成的ID值,新的记录会...

    php2go:使用Golang来实现PHP的常见内置函数

    ucwords () substr () strrev () number_format () chunk_split () str_word_count () wordwrap () strlen () mb_strlen () str_repeat () strstr () strtr () str_shuffle () trim () ltrim () rtrim () explode ()...

    PHP自定义架构

    在【标签】中提到的“源码”和“工具”,意味着这篇文章可能包含实际的源代码示例和可能使用的辅助工具,比如IDE、调试器或版本控制系统,以帮助理解和实现自定义PHP架构。文件名称列表中的`simplemvc`可能是指一个...

Global site tag (gtag.js) - Google Analytics