首页 > 编程知识 正文

字符串可以直接比较大小,字符串比较不区分大小写

时间:2023-05-05 08:18:26 阅读:23442 作者:2625

问题

我编写了一个比较两个字符串的Java程序:

String s1='Hello ';

String s2='hello ';

if(S1.equals ) S2 ) }

system.out.println('Hai );

} else {

system.out.println(welcome );

}

将显示“欢迎”。 我知道区分大小写。 但是,我的问题是想比较两个不区分大小写的字符串。 也就是说,我打算和海伊输出。

#1人气回答(152赞不绝口) ) ) ) ) ) ) ) ) )

最好是使用s1.equalsignorecase(s2 ) : (见javadoc )

也可以将它们转换为大小写并使用s1.equals(s2 )

#2人气回答(40赞词) ) ) ) ) ) ) ) 0

useString.equalsIgnoreCase (

#3人气回答(20赞词) ) ) ) ) ) ) ) ) )

String.equalsIgnoreCase是天真不区分大小写的字符串比较最实用的选择。

但是,由于此方法既不完全缩小大小写也不分解大小写,因此无法执行Unicode标准中指定的大小写匹配。 *实际上,JDK API不提供对案例折叠字符数据的信息访问,因此建议您委托经过测试和测试的第三方库执行此操作。

该库是ICU,提供了用于比较不区分大小写的字符串的实用程序。

import com.IBM.ICU.text.normalizer 2;

//.

publicstaticbooleanequalsignorecase (char sequences,CharSequence t ) {

normalizer2normalizer=normalizer2. getnfkccasefoldinstance (;

returnnormalizer.normalize(s ).equals (normalizer.normalize ) t );

}

String brook='uu0308chen ';

String BROOK='FLSSCHEN ';

评估服务质量指示符(brook,brook );

如果在String.equalsIgnoreCase或String.equals与上层或下层字符串进行天真比较,这一简单测试也将失败。

(预定义的情况折叠flavourgetNFKCCasefoldInstance与区域设置无关; 土耳其语区域设置需要与UCharacter.foldCase相关的更多工作。 )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。