当前位置: 首页 > 面试题库 >

Java的toLowerCase()是否保留原始字符串长度?

巫马修为
2023-03-14
问题内容

假定两个Java String对象:

String str = "<my string>";
String strLower = str.toLowerCase();

那么对于<my string>表达式的每个值是否都是真的

str.length() == strLower.length()

评估为true

那么,是否String.toLowerCase()保留String的任何值的原始字符串长度?


问题答案:

令人惊讶它 不是

来自toLowerCase的
Java文档

使用给定语言环境的规则将此String中的所有字符转换为小写。大小写映射基于Character类指定的Unicode标准版本。
由于案例映射并不总是1:1字符映射,因此生成的String的长度可能与原始String的长度不同。

例:

package com.stackoverflow.q2357315;

import java.util.Locale;

public class Test {
    public static void main(String[] args) throws Exception {
        Locale.setDefault(new Locale("lt"));
        String s = "\u00cc";
        System.out.println(s + " (" + s.length() + ")"); // Ì (1)
        s = s.toLowerCase();
        System.out.println(s + " (" + s.length() + ")"); // i̇̀ (3)
    }
}


 类似资料:
  • 在JavaScript中有没有办法删除字符串的结尾? 我只需要保留字符串的前8个字符,并删除其余字符。

  • 使用javascript,我想将任意长度的字符串拆分为最多80个字符的段。需要注意的是,我不想拆分单词。例如,我目前正在使用下面列出的方法在JavaScript中将大字符串拆分为n大小的块 问题是,一个从第76个字符开始到第84个字符结束的单词将被分成两半。是否有一个光滑的正则表达式或代码来防止这种情况? 为了澄清这一点,我能够编写一个小函数来实现这一点,我只是想知道是否有一种干净、简洁的方法。

  • 问题内容: 我们正在捕获大小可变(从100k到800k)的原始二进制字符串,并且我们想存储这些单独的字符串。它们不需要索引(duh),并且不会对该字段的内容进行任何查询。 这些插件的数量将非常大(用于存档),例如每天10,000。像这样的大型二进制字符串的最佳字段类型是什么?应该是还是其他? 问题答案: 就 PostgreSQL 而言,类型是不可能的。与目标相比,它更慢,占用更多空间并且更容易出错

  • 问题内容: 我正在努力获取unicode字符串的计数,并尝试了各种选择。看起来像是一个小问题,但却大有作为。 在这里,我试图获取字符串str1的长度。我得到的是6。但实际上是3。将光标移到字符串“குமார்”上还会显示为3个字符。 基本上我想测量长度并打印每个字符。如“கு”,“மா”,“ர்”。 PS:这是泰米尔语。 问题答案: 找到了解决您问题的方法。 基于这个SO答案,我制作了一个使用正则

  • 我正在努力获取unicode字符串的计数,并尝试了各种选项。看起来是个小问题,但影响很大。 这里我试图得到字符串str1的长度。我得到的是6分。但实际上是3。将光标移到字符串上“குமார்“也显示为3个字符。 基本上我想测量长度并打印每个字符。像 "கு", "மா", "ர்" . 附言:这是泰米尔语。

  • 本文向大家介绍python 字符串只保留汉字的方法,包括了python 字符串只保留汉字的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python 字符串只保留汉字的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。