원본 주소: http://www.davidflanagan.com/2009/08/string-multipli.html
원저자: David Flanagan
In Ruby 에서 "*" 연산자는 문자열을 왼쪽 매개변수로 사용하고 숫자를 오른쪽 매개변수로 사용하여 문자열 반복을 구현합니다. 예를 들어, "Ruby" * 2의 값은 "RubyRuby"입니다. 이는 몇 가지 위치(예: 하이픈과 같은 ASCII 문자 테이블 생성)에서만 유용하지만 매우 간결합니다. 그리고 문자열을 n번 연결하는 루프를 작성하는 것보다 낫습니다. 이는 매우 비효율적으로 보입니다.
방금 JavaScript에서 문자열 곱셈을 수행하는 영리한 방법을 발견했습니다.
String.prototype.times = function(n) {
return Array.prototype.join.call({length:n 1}, this); ;
"js".times(5) // => "jsjsjsjs"
이 메소드는 요소가 모두 "정의되지 않은" 배열을 호출하는 것입니다. 행동. 그러나 실제로 n 1개의 "정의되지 않은" 요소가 있는 배열을 생성하지는 않습니다. 이는 Array 객체의 프로토타입 함수인 Join()에 의존하여 길이 속성을 포함하는 익명 객체를 사용합니다. "Object"는 배열이 아니기 때문에 Join()을 직접 호출할 수 없으므로 프로토타입의 call()을 통해 구현해야 합니다. 동일한 효과를 갖는 간단한 버전은 다음과 같습니다.
Firefox에서만 테스트했고 일반 루프보다 더 효율적일 것으로 예상하지만 벤치마킹하지는 않았습니다.
저자 소개
David Flanagan은 Java 글쓰기에 푹 빠진 컴퓨터 프로그래머입니다. 그는 대부분의 시간을 Java 관련 책을 쓰는 데 보냅니다. David는 MIT에서 컴퓨터 과학 및 엔지니어링 학위를 받았습니다. 그는 시애틀과 밴쿠버 사이의 미국 태평양 북서부 해안에 살고 있습니다. 그의 베스트셀러 O'Reilly 저서로는 Java in a Nutshell, Java Foundation Classes in a Nutshell, Java Enterprise in a Nutshell, JavaScript: The Definitive Guide, JavaScript Pocket Reference 및 The Ruby 프로그래밍 언어 등이 있습니다.
내 의견
효율성이 중요하다면 루프 반복을 약간 최적화하는 것이 더 효율적일 수 있습니다. 예를 들어, 다음 재귀 호출의 알고리즘 복잡도는 O(log2n)입니다. Google Chrome에서의 테스트 결과는 David의 방법보다 빠르게 실행된다는 것입니다. 그러나 그의 방법이 매우 우아하다는 점은 인정해야 합니다!
if (n == 1 ) {
return this;
}
var midRes = this.times(Math.floor(n/2))
midRes = midRes;
if ( n % 2 ) {
midRes = this;
}
return midRes;
}
David가 내 제안을 채택했습니다. 그는 우리를 위해 비재귀 버전을 작성했습니다. 그의 블로그의 원본 텍스트를 참조하십시오: http://www.davidflanagan.com/2009/08/good-algorithms.html
연락처 정보
내 이메일, 저에게 연락을 환영합니다(redraiment@gmail.com). )

php将16进制字符串转为数字的方法:1、使用hexdec()函数,语法“hexdec(十六进制字符串)”;2、使用base_convert()函数,语法“bindec(十六进制字符串, 16, 10)”。

PHP 是一门功能强大的编程语言,广泛应用于 Web 开发领域。其中一个非常常见的情况是需要将字符串转换为小数。这在进行数据处理的时候非常有用。在本文中,我们将介绍如何在 PHP 中将字符串转换为小数。

检测变量是否为字符串的方法:1、利用“%T”格式化标识,语法“fmt.Printf("variable count=%v is of type %T \n", count, count)”;2、利用reflect.TypeOf(),语法“reflect.TypeOf(变量)”;3、利用reflect.ValueOf().Kind()检测;4、使用类型断言,可以对类型进行分组。

php字符串长度不一致的解决办法:1、通过mb_detect_encoding()函数查看字符串的编码方式;2、通过mb_strlen函数查看具体字符长度;3、使用正则表达式“preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches);”剔除非中文字符即可。

删除方法:1、使用TrimSpace()函数去除字符串左右两边的空格,语法“strings.TrimSpace(str)”;2、使用Trim()函数去除字符串左右两边的空格,语法“strings.Trim(str, " ")”;3、使用Replace()函数去除字符串的全部空格,语法“strings.Replace(str, " ", "", -1)”。

转换方法:1、在转换变量前加上用括号括起来的目标类型“(bool)”或“(boolean)”;2、用boolval()函数,语法“boolval(字符串)”;3、用settype()函数,语法“settype(变量,"boolean")”。

在开发PHP应用程序时,有时我们需要去掉字符串前面的某些特定字符或者字符串。在这种情况下,我们需要使用一些PHP函数来实现这一目标。本文将介绍一些PHP函数,帮助您轻松地去掉字符串前面的字符或字符串。

php字符串部分乱码的解决办法:1、使用“mb_substr(strip_tags($str),0,-1,'UTF-8');”截取字符串;2、使用“iconv("UTF-8","GB2312//IGNORE",$data)”转换字符集即可。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
