Tag: 字符串

com.sun.jdi.InvocationException在JDK8中调用了方法

我正在将我的应用程序从JDK 7迁移到JDK 8.在执行操作时,我遇到了一个exception,当创建如下所示的TestField实例时, com.sun.jdi.InvocationException occurred invoking method了com.sun.jdi.InvocationException occurred invoking method 。 我在调试时遇到exception,无法找到原因。 我怀疑发生NullPointerException并且InvocationException会掩盖它。 我在TestField覆盖了以下Object方法。 下面的实用程序类是commons-lang jar的一部分。 HashCodeBuilder EqualsBuilder ToStringBuilder public class TestField { private String name; private Rules rules; public TestField(String name, Rules rules) { this.name = name; this.rules = rules; } public String toString() { return new ToStringBuilder(this) .append(“\n name”, this.getName()) .append(“\n Rules”, this.getRules()) […]

Java中“abc”+“de”和“abc”+ de(de =“de”)之间的区别?

我运行以下代码并获得评论中显示的结果。 我知道==和.equals()之间的区别。 我不明白的是为什么我的第二行代码与第三行代码的结果不同。 String de = “de”; // String abcde = “abc” + “de”; // abcde == “abcde” reture true String abcde = “abc” + de; // abcde == “abcde” reture false; System.out.println(); System.out.println(abcde==”abcde”); System.out.println(de==”de”); 在尝试调试时,我使用了javap -c命令并为第一个字符串连接获得了以下输出’code’: Code: 0: ldc #9; //String de 2: astore_1 3: new #10; //class java/lang/StringBuilder 6: dup 7: invokespecial #11; […]

帮助创建随机字符串

我需要创建一个随机字符串,其长度应介于6到10之间,但有时只会产生3到5的长度。这是我的代码。 任何人都能找到问题吗? 🙁 int lengthOfName = (int)(Math.random() * 4) + 6; String name = “”; /* randomly choosing a name*/ for (int j = 0; j <= lengthOfName; j++) { int freq = (int)(Math.random() * 100) + 1; if(freq = 9 && freq = 12 && freq = 16 && freq = 30 && freq […]

为什么substring()方法substring(起始索引(包括),结束索引(独占))

substring将起始参数作为索引,第二个参数作为从头开始的长度的原因是什么? 换一种说法 1 2 3 | 4 5 <=== Length from beginning ABCDE 0 | 1 2 3 4 <=== Index 如果我想要substring()返回BC我必须做”ABCDE”.substring(1,3); 为什么会这样? 编辑:使最终索引独占有什么好处?

在字符串中替换字符

我正在尝试创建一个字符串,将所有空格替换为*但我无法确切地知道如何做到这一点。 有人可以帮忙吗? String phrase = new String (“This is a String test.”);

字符串数组是否可变?

我想知道Java中的String数组是否可变? 我知道字符串是不可变的,但字符串数组怎么样? 如果我有一个字符串数组,并更改内容,是否会创建一个新的字符串对象? 或者实际值是否会改变? 提前致谢

如何获取String中所有匹配的位置?

我有一个文本文档和一个查询(查询可能不止一个单词)。 我想在文档中找到所有出现的查询的位置。 我想到了documentText.indexOf(query)或使用正则表达式,但我无法使其工作。 我最终得到以下方法: 首先,我创建了一个名为QueryOccurrence的dataType public class QueryOccurrence implements Serializable{ public QueryOccurrence(){} private int start; private int end; public QueryOccurrence(int nameStart,int nameEnd,String nameText){ start=nameStart; end=nameEnd; } public int getStart(){ return start; } public int getEnd(){ return end; } public void SetStart(int i){ start=i; } public void SetEnd(int i){ end=i; } } 然后,我在以下方法中使用了此数据类型: public static ListFindQueryPositions(String […]

如何检测字节数组中的字符串结尾到字符串转换?

我从socket接收一个字节数组中的字符串,如下所示: [128,5,6,3,45,0,0,0,0,0] 网络协议给出的大小是字符串的总长度(包括零),因此,在我的例子中10。 如果我只是这样做: String myString = new String(myBuffer); 我在字符串5的末尾没有正确的字符。 转换似乎没有检测到字符串caracter(0)的结束。 要获得正确的大小和正确的字符串,我这样做: int sizeLabelTmp = 0; //Iterate over the 10 bit to get the real size of the string for(int j = 0; j<(sizeLabel); j++) { byte charac = datasRec[j]; if(charac == 0) break; sizeLabelTmp ++; } // Create a temp byte array to make […]

是否真的缓存了java.lang.String的哈希码?

String s1 = “String1”; System.out.println(s1.hashCode()); // return an integer i1 Field field = String.class.getDeclaredField(“value”); field.setAccessible(true); char[] value = (char[])field.get(s1); value[0] = ‘J’; value[1] = ‘a’; value[2] = ‘v’; value[3] = ‘a’; value[4] = ‘1’; System.out.println(s1.hashCode()); // return same value of integer i1 即使我在reflection的帮助下更改了字符,也会保留相同的哈希码值。 这里有什么我需要知道的吗?

在java中基于空格分割一个字符串,用双引号和单引号转义那些空格以及前面带\

我对正则表达式完全不熟悉。 我正在尝试组合一个表达式,该表达式将使用未被单引号或双引号括起的所有空格分割示例字符串,并且前面没有’\’ 例如:- He is a “man of his” words\ always 必须拆分为 He is a “man of his” words\ always 我明白 List matchList = new ArrayList(); Pattern regex = Pattern.compile(“[^\\s\”‘]+|\”[^\”]*\”|'[^’]*'”); Matcher regexMatcher = regex.matcher(StringToBeMatched); while (regexMatcher.find()) { matchList.add(regexMatcher.group()); } l使用未被单引号或双引号括起的所有空格拆分示例字符串 如果前面有一个\ _,那么如何合并忽略空白区域的第三个条件?