Tag: 字符

Java字符串对象是否为Chars数组?

我是java的新手,并试图理解该语言的基本要素和基础知识。 是否准确地说Java字符串对象本质上是一个定义为不可变的字符数组的类? 我问这个,因为与char数组和字符串类相比,我对规范感到有点困惑…… JLS 10.9 10.9字符数组不是字符串在Java编程语言中,与C不同,char数组不是String,字符串和char数组都不会被’\ u0000’(NUL字符)终止。 String对象是不可变的,也就是说,它的内容永远不会改变,而char数组有可变元素。 类String中的toCharArray方法返回一个包含与String相同字符序列的字符数组。 StringBuffer类在可变字符数组上实现有用的方法。 JLS 4.3.3 4.3.3类String的类字符串实例表示Unicode代码点的序列。

如何为特定类编写hashCode方法?

我正在尝试为我的简单类生成一个hashCode()方法,但我没有得到它的任何地方。 我将不胜感激任何帮助。 我已经实现了equals()方法,如下所示,并且还想知道我是否需要实现compareTo()方法。 我已经导入了java.lang.Character来使用character.hashCode()但它似乎不起作用。 private class Coord{ private char row; private char col; public Coord(char x, char y){ row = x; col = y; } public Coord(){}; public char getX(){ return row; } public char getY(){ return col; } public boolean equals(Object copy){ if(copy == null){ throw new NullPointerException(“Object entered is empty”); } else if(copy.getClass()!=this.getClass()){ […]

Java中的字符是1字节还是2字节?

我认为java中的字符是16位,如java doc中所建议的那样。 字符串不是这样吗? 我有一个代码将对象存储到文件中: public static void storeNormalObj(File outFile, Object obj) { FileOutputStream fos = null; ObjectOutputStream oos = null; try { fos = new FileOutputStream(outFile); oos = new ObjectOutputStream(fos); oos.writeObject(obj); oos.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { oos.close(); try { fos.close(); } catch (Exception e) { e.printStackTrace(); } } […]

计算字符长度的有效方法,具体取决于编码方式

考虑到字符编码,计算字符字节长度的最有效方法是什么? 编码只能在运行时知道。 例如,在UTF-8中,字符具有可变字节长度,因此需要单独确定每个字符。 到目前为止,我已经想出了这个: char c = getCharSomehow(); String encoding = getEncodingSomehow(); // … int length = new String(new char[] { c }).getBytes(encoding).length; 但是这在循环中是笨拙和低效的,因为每次都需要创建一个new String 。 我在Java API中找不到其他更有效的方法。 有一个String#valueOf(char) ,但根据它的来源它基本上与上面相同。 我想这可以通过像位移这样的按位运算来完成,但这是我的弱点,我不确定如何在这里考虑编码:) 如果您对此有疑问,请查看此主题 。 更新: @Bkkbrad的答案在技术上是最有效的: char c = getCharSomehow(); String encoding = getEncodingSomehow(); CharsetEncoder encoder = Charset.forName(encoding).newEncoder(); // … int length = encoder.encode(CharBuffer.wrap(new char[] { […]

查找java中字符串中字符频率的有效方法:O(n)

在最近的一次采访中,我被要求写下面的程序。 找出给定字符串中频率最小的字符? 所以我尝试通过使用charAt迭代字符串并将字符作为键存储在HashMap中,并将出现次数作为其值。 现在,我必须迭代Map以找到最低元素。 是否有一种更有效的方法来做到这一点,显然上面的一个太强烈了我猜。 更新和另一种解决方案 经过一些思考过程和答案后,我认为最好的时间是O(n)。 在第一次迭代中,我们将不得不逐个字符地迭代字符串,然后将它们的频率存储在特定位置的数组中(字符是一个int),同时有两个临时变量,它们保持最少的计数和相应的字符。因此,当我转到下一个字符并将其频率存储在arr [char] = arr [char] +1中;同时我将检查temp varible是否具有大于此值的值,如果是,那么temp变量将是这个值,而char也将是这一个。这样我认为我们不需要第二次迭代来找到最小的并且也不需要排序我猜 …. Wat说? 或者更多解决方案

Java中的char和Character有什么区别?

我需要知道Java中的char和Character之间的区别是什么,因为当我创建一个java程序时,char工作而Character没有工作。

Java奇怪的分裂行为与| 字符

我有一个小文件,其中包含一些我想用“|”拆分的内容 字符。 当我尝试使用任何其他角色(例如“>”)时,它完美地工作,但是使用“|” 性格,有一些意想不到的结果。 这条线本身(这里带有>字符) addere>添加>(1) 拆分“>”结果 [addere,添加,(1)] 拆分“|” 结果 [,a,d,d,e,r,e,|,t,o ,, a,d,d,|,(,1,)] 为什么分裂一切甚至忽略“|” 字符串本身的字符? 提前致谢。

将String拆分为String ,以便每个元素最多100个字符并以空格结尾

我该怎么做呢? 我试过这样的事情,但我似乎无法再进一步了。 public void speak(String text) { String[] textArray = text.split(” “); System.out.println(text); StringBuilder builder = new StringBuilder(); int index = 0; while(builder.length() < 99) { builder.append(textArray[index] + " "); index++; } System.out.println(builder.toString()); } 编辑:我需要每个字符串是单独的字符串,只有100个字符长。 所以我需要一个Array或Arralist中的每个String。

使用字符包装器代码替换字符串中的字母,并使用保留原始案例的新字母

试图弄清楚如何使用字符包装来根据用户输入改变字符串。 如果字符串是’Bob喜欢建造建筑’并且用户选择用T / t替换所有字母B / b,我如何编码以获得’Tom喜欢Tuild tuildings’?

在Java中生成任意两个随机字符

如何在两个特定字符之间生成随机字符? 例如; 我想生成’h’或’v’中的任何一个。 谢谢