[英]Extracting capital letters ( English ) | Preferred method
给出一串文字
var string1 = 'IAmNotFoo';
你如何只提取大写字母?
'IANF'
以下是每个链接的一些方法:
function isUpperCase1(aCharacter) {
if ( ch == ch.toUpperCase() ) {
return true;
}
return false;
}
function isUpperCase2( aCharacter ) {
return ( aCharacter >= 'A' ) && ( aCharacter <= 'Z' );
}
var string1 = 'IAmNotFoo',
string2 = '',
i = 0,
ch = '';
while ( i <= string1.length ) {
ch = string1.charAt( i );
if (!isNaN( ch * 1 ) ) {
alert('character is numeric');
}
else if ( isUpperCase2() ) { // or isUpperCase1
string2 += ch;
}
i++;
}
或简单地(以下评论):
var upper = str.replace(/[^A-Z]/g, '');
SO相关
我喜欢使用数字,所以我更喜欢转换为整数并检查ascii范围。 您可以在www.ascii-code.com上看到此图表。
所有大写字母都有一个与小写字母相对应的单独的ascii代码。
做这样的事情
String str = "IAmNoFoo";
returnCaps(str);
Public static String returnCaps(String, str)
{
for (int i = 0; i < str.length; i++)
{
int letter = str.convertToInt(charAt(i));
if (letter >= 65 || letter <= 90)
return str.substring.charAt(i);
else
return "No Capital Letters Found"
}
}
您可能需要将循环检查设置为i <= str.length
这将检查字符串的每个索引处的字符是否为captial。 我认为以数学方式思考是最容易的。
通过一些调整,您可以非常轻松地将其转换为递归方法。
正则表达式方法是迄今为止最简单和最有效的方法,因为它只是一个步骤而不是一个大循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.