Tag: 字符串

非空字符串的哈希码是否可以为零?

通过“非空”,我的意思是在这个问题中包含至少一个非零字符的字符串。 作为参考,这是hashCode实现: 1493 public int hashCode() { 1494 int h = hash; 1495 if (h == 0) { 1496 int off = offset; 1497 char val[] = value; 1498 int len = count; 1499 1500 for (int i = 0; i < len; i++) { 1501 h = 31*h + val[off++]; 1502 } 1503 hash […]

Dozer String到枚举映射

我有这样的枚举: public enum PartnershipIndicator { VENDOR(“VENDOR”), COPARTNER(“COPARTNER”), BUYER(“BUYER”); String code; private PartnershipIndicator(String code) { this.code = code; } public String getCode() { return code; } public static PartnershipIndicator valueOfCode(String code) { for (PartnershipIndicator status : values()) { if (status.getCode().equals(code)) { return status; } } throw new IllegalArgumentException( “Partnership status cannot be resolved for code ” […]

为什么Java不支持多行字符串?

为什么Java不支持多行字符串? 我知道他们不,但我不知道为什么。 有充分的理由吗? 其他几种语言都有这种function,即使是较旧的语言,为什么Java不呢? 据我所知(不是很远),不应该将此function添加到词法分析器/编译器中。 编辑:为了澄清,我不是指一个带有换行符的字符串。 我的意思是这样的: String s = “Hello World”; 编辑2:我不知道为什么人们认为我在征求意见,我当然不是。 我特意问了很多理由 。 我想我需要根据事实明确说出来吗?

如何检查java中字符串中有多少个字母?

如何检查Java字符串中有多少个字母? 如何检查字符串中某个位置的字母(即字符串的第二个字母)?

简单的方法来反转字符串

没有经过char序列,有没有办法在Java中反转String

使用正则表达式分割不同长度的字符串

我不知道使用正则表达式是否可行。 我只是想问一下有人知道答案。 我有一个string =”hellohowareyou??” 。 我需要像这样分开它 [h, el, loh, owar, eyou?, ?] 。 完成分割使得第一串具有长度1,第二长度2等等。 最后一个字符串将包含剩余的字符。 我可以使用像这样的函数在没有正则表达式的情况下轻松完成。 public ArrayList splitString(String s) { int cnt=0,i; ArrayList sList=new ArrayList(); for(i=0;i+cnt<s.length();i=i+cnt) { cnt++; sList.add(s.substring(i,i+cnt)); } sList.add(s.substring(i,s.length())); return sList; } 我只是好奇是否可以使用正则表达式完成这样的事情。

根据传入的字符串设置枚举值

我有许多setter方法,它们采用枚举。 这些基于传入对象属性。 而不是写一堆这些是有一种方法来硬编码说10个不同的案例陈述。 有没有办法创建一个可重用的方法? //Side class declared as public final enum Side //How I initialise side static Side side = Side.SELL;//default //method to set object Obj.setSide(sideEnum(zasAlloc.getM_buySellCode())); //How I am implementing it public static Side sideEnum(String buysell) { if(buysell.equalsIgnoreCase(“S”)) { side = Side.SELL; //default } else if(buysell.equalsIgnoreCase(“B”)) { side = Side.BUY; } return side; }

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代码点的序列。

是否有半自动方式为i18n执行字符串提取?

我们有一个Java项目,其中包含大量用于用户提示,错误消息等的英语字符串。 我们希望将所有可翻译的字符串提取到属性文件中,以便以后可以翻译它们。 例如,我们想要替换: Foo.java String msg = “Hello, ” + name + “! Today is ” + dayOfWeek; 有: Foo.java String msg = Language.getString(“foo.hello”, name, dayOfWeek); language.properties foo.hello = Hello, {0}! Today is {1} 我知道以完全自动化的方式完成此操作几乎是不可能的,因为不是每个字符串都应该被翻译。 但是,我们想知道是否有一种半自动化方式可以消除一些劳动力。

如何在Java中没有正则表达式的情况下只替换一次字符串?

我需要用一个更大的字符串替换动态子字符串,但只需要一次(即第一次匹配)。 String类只提供replace() ,它替换子字符串的所有实例; 有一个replaceFirst()方法,但它只需要regexp而不是常规字符串。 我对使用正则表达式有两个顾虑: 1)我的子串是动态的,所以可能包含奇怪的字符,这些字符在正则表达式中表示其他东西,我不想处理字符转义。 2)这种替换经常发生,我不确定使用正则表达式是否会影响性能。 由于正则表达式本身是动态的,我无法预先编译正则表达式! 我必须在这里遗漏一些东西,因为在我看来这是一个非常基本的东西……是否有一个replaceFirst方法在java franework中的其他地方使用常规字符串?