Tag: replaceall

Java字符串replaceAll()

我一直在想,例如: JTextPane chatTextArea = new JTextPane(); s.replaceAll(“:\\)”, emoticon()); public String emoticon(){ chatTextArea.insertIcon(new ImageIcon(ChatFrame.class.getResource(“/smile.png”))); return “`”; } 可以放一张图片和“`”到处“:)”被找到。 当我像这样运行它时如果s包含“:)”那么整个s只会被图标替换掉。 有办法吗?

Java中的replace()和replaceAll()

以下代码使用Java中String类的replace()方法。 String a = “abc/xyz”; System.out.println(a.replace(“/”, “\\”)); /在给定的String中, a被替换为\ 。 如果我们使用replaceAll()方法,如下所示是同样的错误。 System.out.println(a.replaceAll(“/”, “\\”)); 它会导致抛出exceptionjava.lang.StringIndexOutOfBoundsException 。 它需要两个额外的反斜杠\ ,如下所示,因为replaceAll()使用正则表达式,而不是replace()方法的情况。 System.out.println(a.replaceAll(“/”, “\\\\”)); 唯一的问题是为什么这个方法只使用两个斜杠,如a.replaceAll(“/”, “\\”)抛出java.lang.StringIndexOutOfBoundsException ? 另一方面, split()方法最初发出一个waring Invalid regular expression: Unexpected internal error (我正在使用NetBeans 6.9.1)。 String b=”abc\\xyz”; System.out.println(b.split(“\\”)[0]+b.split(“\\”)[1]); //Issues a warning as specified. 尝试运行此操作会导致抛出exceptionjava.util.regex.PatternSyntaxException 。 因为它使用像replaceAll()这样的正则表达式,所以它需要四个反斜杠。 System.out.println(b.split(“\\\\”)[0]+b.split(“\\\\”)[1]); 为什么a.replaceAll(“/”, “\\\\”); 如前面的情况一样,即使它的模式无效,也不会发出这样的警告或运行时exception?

Java:了解String replaceAll()方法

我想在这里找出这个问题的答案。 首先, blah[abc] = blah[abc].replaceAll(“(.*) (.*)”, “$2, $1”); 有人可以向我解释一下(。*),$ 2和$ 1是什么? 其次,当我在for语句中嵌套以便反转字符串的两个部分时,我遇到exception错误。 我想知道是否有人知道为什么会这样。 谢谢 编辑:这是我收到的错误 线程“main”中的exceptionjava.lang.ArrayIndexOutOfBoundsException:1在ChangeNames.main(ChangeNames.java:21)

使用括号replaceAll方法Java

我想在一个句子中改变一个单词,但这个单词有括号。 我把它保存在String变量中。 在变量st里面我有 manages(P0,MT0) 在其他String变量DES内部,我有以下句子: query(MT0, P0) :- not(manages(P0,MT0)), ins_manages(P0,MT0), not(physician(P0)), not(ins_physician(P0)) 所以我有另一个字符串变量querypart存储新单词: managesa 我在代码中尝试的是: EDC = EDC.replaceAll(st,querypart); 但它不起作用。 我认为问题可能是paranthesis,所以我像st变量一样更改了字符串: manages\\(P0,MT0\\) 然后我试了 EDC = EDC.replaceAll(st,querypart); 但我得到了一些结果。 问题是当我像这样使用replaceAll时: EDC = EDC.replaceAll(“manages\\(P0,MT0\\)”,querypart); 句子改变了 query(MT0, P0) :- not(managesa), ins_manages(P0,MT0), not(physician(P0)), not(ins_physician(P0)) 我想这是因为括号,但我找不到任何解决方案呢? 解决办法是什么?

Java – 使用数组值的replace()方法正在改变数组值?

我正在做类似的事情 public static String[] list = {“a”,”b”,”c”,”d”,} //It gives me a NullPointeException if I didn’t use static public String encrypt(String a){ a = a.replace(list[0],list[2]); a = a.replace(list[4],list[3]); return a; } 我有另一种方法可以反转它 public String decrypt(String a){ a = a.replace(list[2],list[0]); a = a.replace(list[3],list[4]); return a; } 当然这是简化的,我正在使用的真实代码使用整个字母和一些数字。 所以这是我的问题:如果我输入123这样的东西到encrypt()并输出ngV然后我输入ngV到decrypt()它给我像1q3 。 只有部分字母正确切换,有些则没有。 使用我缺少的数组值的replace()方法有什么用吗? 我显然是Java新手。 另外我读了Java replace()问题但是replaceAll()没有用。

Java String.replaceAll()引用最新找到的组

Javadoc说$ 1,$ 2等可以用来引用匹配组,但是在使用String.replaceAll()时如何引用替换字符串中最新找到的组? 即,有一个字符串”aaabbbaa”和正则表达式”a+” ,我希望能够执行类似s.replaceAll(“a+”, “$\n”)来获取”aaa\nbbbaa\n” ,但Java给了我Illegal group reference 。

不使用正则表达式删除字符串中的子字符串(不能使用replaceAll)

我需要删除字符串中的一些子字符串(在大型数据集中)。 子字符串通常包含特殊字符,如:。,^,/,…和replaceAll()会将它们视为正则表达式的特殊字符,例如点将匹配任何字符,这不是我想要的。 是否有其他函数可以执行“替换”而不将第一个参数视为正则表达式?

替换所有方法抛出PatternSyntaxException

看下面的代码: String comment = “1)FCR pick up in Hong Kong2)Local charges will be paiy in Hong Kong & in HK$.3)Booking:virginiawong@fahkco.com.hk4)FCR&DOC:emilywu@fahkco.com.hkTel:00852-23021977Fax:00852-2730217Transaction865320submittedVirginiaWong(T1281954U005) and Status is INCMP on 10-JUN-11 11.28.45.764386 PM -05:00”; //comment = comment.replaceAll(“\\)”, “\\\\)”); //comment = comment.replaceAll(“\\(“, “\\\\(“); if(comment == null || comment.length() < 100) { System.out.println(); } String[] strArray = comment.split(" "); for (int i […]

如何执行不区分大小写的模式搜索和保留大小写的替换?

这是场景。 String strText = “ABC abc Abc aBC abC aBc ABc AbC”; // Adding a HTML content to this String searchText = “abc”; String strFormatted = strText.replaceAll( “(?i)” + searchText, “” + searchText + “”); 这将返回一个字符串,其中所有单词均为小写,当然为红色。 我的要求是使用与原始字符串相同的情况将strFormatted作为String,但它应该具有Font标记。 是否有可能做到这一点 ?

如何使用String的replaceAll替换前面的某些字符

我需要替换文本中的一些单词,但我需要在替换策略中添加条件如下: 我想用word2替换word1 : String word1 = “word1”; String word2 = “word2”; 但我不想替换word1,如果它前面是word3 ,它是: String word3 = “word3.”; //with the dot at the ending 那就是如果文本是word3.word1我不想触摸它。 但我似乎无法使用String的replaceAll方法处理字边界 。 编辑: 如果word1的前缀或后缀为“ – ”字符,即-word1或word1-或-word1-,我也不想改变 任何帮助都会很明显。