我试图将一个字符串拆分成一个单个字母的数组。 这就是我做的, String str = “abcddadfad”; System.out.println(str.length()); // output: 10 String[] strArr = str.split(“”); System.out.println(strArr.length); // output: 11 System.out.println(strArr[0]); // output is nothing 新数组确实包含了所有字母,但它在索引0处没有任何内容,甚至没有空格,但仍然增加了我的数组的大小。 任何人都可以解释为什么会这样吗?
我有一个Hashmap,可能在String中包含通配符(*)。 例如, HashMap students_; 可以将约翰*作为一把钥匙。 我想知道JohnSmith是否匹配student_中的任何元素。 我的字符串可能有几个匹配(John *,Jo * Smith等)。 有什么方法可以从我的HashMap中获取这些匹配的列表吗? 是否有另一个我可能正在使用的对象,它不需要我遍历我的集合中的每个元素,或者我是否必须将其吸取并使用List对象? 仅供参考,我的collections品中将包含少于200个元素,最终我想找到与最少量通配符匹配的对。
我从网上得到一个字符串,如下所示: Latest Episode@04×22^Killing Your Number^May/15/2009 然后我需要在不同的变量中存储04×22 , Killing Your Number和May/15/2009 04×22 ,但它不起作用。 String[] all = inputLine.split(“@”); String[] need = all[1].split(“^”); show.setNextNr(need[0]); show.setNextTitle(need[1]); show.setNextDate(need[2]); 现在它只存储NextNr ,包含整个字符串 04×22^Killing Your Number^May/15/2009 哪里不对?
我正在寻找C ++中的类似函数string.split(delimiter)它确实返回由指定的分隔符剪切的字符串数组。 。 http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String) 有一个好的答案,但作者删除了它。 vector split(string str, string sep){ char* cstr=const_cast(str.c_str()); char* current; vector arr; current=strtok(cstr,sep.c_str()); while(current != NULL){ arr.push_back(current); current=strtok(NULL, sep.c_str()); } return arr; }
http://www.tutorialspoint.com/java/java_string_split.htm 以下是此方法的语法: public String[] split(String regex, int limit)或public String[] split(String regex) 在上面的链接中,我可以理解Str.split(“-“, 2)和Str.split(“-“, 3)例子。 但是,我不退出获得Str.split(“-“, 0) ,限制为零的作用是什么? 在一些例子中,我也遇到了负面限制,这是什么? 非常感谢
我正在为OCA SE 7考试做准备,其中一些问题确实很棘手。 在我使用的其中一本书中,我发现了一个错误,所以我想确认以下内容,请… public static void main(String… args) { String autumn = new String(“autumn”); // line one System.out.println(“autumn” == “summer”); // line two } 执行println方法后,池中有多少个String对象? 我的理解是: – 第一行不会将字符串添加到池中 – 第二行创建“autumn”和“summer”并将它们添加到池中所以书中的正确答案是2。 但是,我也认为……因为我应该对考试问题产生偏执……也会创建字符串“false”并添加到池中…所以我认为3应该是正确的答案……还是会发生一些其他的黑魔法……默认情况下JVM已经将“真实”和“假”放入池中了……? 有人可以确认吗? 编辑:经过一些研究后,我发现在书中谈到“错误”并不公平; 作为一般提示:考试题目通常根据“以下代码”制定; 所以他们显然对简单的计算代码本身在本地做什么的简单计算感兴趣。 因此,范围不允许检查println(boolean b)实现或编译器优化。 很公平 :)
有没有办法计算字符串的长度(以像素为单位)给定某个java.awt.Font对象,它不使用任何GUI组件?
使用reflection来擦除String是否使用String作为使用char[]进行密码安全? 从安全方面来说,通常认为使用char[]存储/传递密码是最佳做法,因为可以在代码中尽快将其内容清零,这可能在垃圾收集清理它和内存之前显着重用(擦除所有跟踪),限制内存攻击的时间窗口。 但是, char[]并不像String那么方便,所以如果需要的话可以“擦除”一个String ,这样就很方便了,这样就可以使String像char[]一样安全。 下面是一个使用reflection来清除String字段的方法。 这个方法是否“OK”,它是否实现了使String像char[]一样安全的目标? public static void scrub(String str) throws NoSuchFieldException, IllegalAccessException { Field valueField = String.class.getDeclaredField(“value”); Field offsetField = String.class.getDeclaredField(“offset”); Field countField = String.class.getDeclaredField(“count”); Field hashField = String.class.getDeclaredField(“hash”); valueField.setAccessible(true); offsetField.setAccessible(true); countField.setAccessible(true); hashField.setAccessible(true); char[] value = (char[]) valueField.get(str); // overwrite the relevant array contents with null chars Arrays.fill(value, offsetField.getInt(str), countField.getInt(str), ‘\0’); countField.set(str, […]
我在Java中有一个包含String的对象。 我很好奇String的内存使用情况如何。 我正在尝试优化我的程序的内存使用量,应用程序将有大约10000个这样的对象。 对于诸如“Hello World”之类的字符串,内存使用量是多少?
我想将hex字符串转换为二进制字符串。 例如,Hex 2是0010.下面是代码: String HexToBinary(String Hex) { int i = Integer.parseInt(Hex); String Bin = Integer.toBinaryString(i); return Bin; } 但是这只适用于Hex 0 – 9; 它不适用于Hex A – F,因为它使用int 。 谁能增强它?