Tag: 字符串

从字符串中删除所有出现的\

我试图从服务器获取一个对象数组,使用JSON。 服务器向我发送以下字符串。 “[{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:1,\”CompanyId\”:1,\”StartDate\”:\”2012-12-13T00:00:00\”,\”EndDate\”:\”2012-12-16T00:00:00\”,\”CouponCode\”:\”Test Coupon 1\”,\”Description\”:\”Test Deal Description 1\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 1\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:2,\”CompanyId\”:1,\”StartDate\”:\”2012-12-16T00:00:00\”,\”EndDate\”:\”2012-12-17T00:00:00\”,\”CouponCode\”:\”Test Coupon 2\”,\”Description\”:\”Test Description 2\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 2\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:3,\”CompanyId\”:1,\”StartDate\”:\”2012-12-14T00:00:00\”,\”EndDate\”:\”2012-12-15T00:00:00\”,\”CouponCode\”:\”Test Code 3\”,\”Description\”:\”Test Description 3\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 3\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:4,\”CompanyId\”:1,\”StartDate\”:\”2012-12-12T00:00:00\”,\”EndDate\”:\”2012-12-13T00:00:00\”,\”CouponCode\”:\”Test Coupon 4\”,\”Description\”:\”Test Description 4\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 4\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:5,\”CompanyId\”:2,\”StartDate\”:\”2012-12-12T00:00:00\”,\”EndDate\”:\”2012-12-14T00:00:00\”,\”CouponCode\”:\”AwD\”,\”Description\”:\”Very awesome deal!\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Awesome Deal 1\”}]” 现在,如果你仔细查看字符串,你会发现它包含一个\”而不是每一个” 。 现在无法将字符串格式化为JSONArray。 因此,我需要更换每次出现的\” with ” ,这将是一项非常简单的任务,而不是一个转义序列 。 我尝试使用以下代码。 String jsonFormattedString = jsonStr.replaceAll(“\\”, “”); 但它给了我以下例外。 12-19 00:35:59.575: W/System.err(444): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near […]

是否使用+串联创建的字符串存储在字符串池中?

例如 String s = “Hello” + ” World”; 我知道池中有两个字符串“Hello”和“World”但是,“Hello World”进入字符串池吗? 如果是这样,怎么样? String s2 = new String(“Hola”) + new String(” Mundo”); 每种情况下池中有多少个字符串?

Java:String:equalsIgnoreCase vs将所有内容切换为大写/小写

我注意到有几种方法可以比较Java中的字符串。 我刚刚习惯使用equalsIgnoreCase以避免出现区分大小写的字符串问题。 另一方面,其他人喜欢以大写或小写的方式传递所有内容。 从我的立场(即使技术上我坐着),我看不出真正的区别。 有人知道一种做法是否优于另一种做法? 如果是这样,为什么?

扩展java.lang.String

java.lang.String被声明为final,但有没有合法的机制或以其他方式扩展它并替换equals(String other)方法?

我可以根据其字段的值获得枚举吗?

我想根据其字段值获取特定的枚举。 枚举: public enum CrimeCategory { ASBO (“Anti Social Behaviour”), BURG (“Burglary”), CRIMDAM (“Criminal Damage And Arson”), DRUGS (“Drugs”), OTHTHEFT (“Other Theft”), PUPDISOR (“Public Disorder And Weapons”), ROBBERY (“Robbery”), SHOPLIF (“Shoplifting”), VEHICLE (“Vehicle Crime”), VIOLENT (“Violent Crime”), OTHER (“Other Crime”); private String category; private CrimeCategory (String category) { this.category = category; } public String returnString() […]

使用new运算符的多少String对象

当我们使用new运算符创建一个String对象时,我读到创建了两个对象,一个Object是字符串常量池,第二个是堆内存。 我的问题是我们正在使用new运算符,因此只应在Heap中创建一个对象。 为什么然后必须在String Constant池中创建另外一个对象。 我知道只要我们不使用new运算符来创建String,Java就会存储String对象。 例如: String s = “abc” . 在这种情况下,它只会在String常量池中创建。 String s2 = new String(“abc”) 只有一个对象可以在堆中创建,而不是在常量池中创建。 请解释我在这里错的原因。

如何从JAVA中的文本文件中读取逗号分隔值?

我有这个文本文件,其中包含地图上不同点的纬度和经度值。 我想使用hibernate将这些坐标存储到mySQL数据库中。 我想知道如何将我的弦乐分成纬度和经度? 与空间,制表符等其他分隔符一起执行这些类型的事物的一般方法是什么? 文件: 28.515046280572285,77.38258838653564 28.51430151808072,77.38336086273193 28.513566177802456,77.38413333892822 28.512830832397192,77.38490581512451 28.51208605426073,77.3856782913208 28.511341270865113,77.38645076751709 28.510530488025346,77.38720178604126 28.509615992924807,77.38790988922119 28.50875805732363,77.38862872123718 28.507994394490268,77.38943338394165 28.50728729434496,77.39038825035095 28.506674470385246,77.39145040512085 28.506174780521828,77.39260911941528 28.505665660113582,77.39376783370972 28.505156537248446,77.39492654800415 28.50466626846366,77.39608526229858 28.504175997400655,77.39724397659302 28.503685724059455,77.39840269088745 28.503195448440064,77.39956140518188 28.50276174118543,77.4007523059845 28.502309175192945,77.40194320678711 28.50185660725938,77.40313410758972 28.50140403738471,77.40432500839233 28.500951465568985,77.40551590919495 28.500498891812207,77.40670680999756 28.5000463161144,77.40789771080017 28.49959373847559,77.40908861160278 我用来读取文件的代码: try { BufferedReader in = new BufferedReader(new FileReader(“G:\\RoutePPAdvant2.txt”)); String str; str = in.readLine(); while ((str = in.readLine()) != null) { System.out.println(str); } […]

正则表达式太慢了吗? 现实生活中的例子,简单的非正则表达式替代方案更好

我见过这里的人发表过像“正则表达式太慢了!”这样的评论,或者“你为什么要用正则表达式做一些简单的事情!” (然后提出10+行代替)等。 我还没有真正在工业环境中使用正则表达式,所以我很好奇是否有正则表达式显然太慢的应用程序, 并且存在一个简单的非正则表达式替代方案,其表现更好(甚至可能渐近!)更好。 显然,许多使用复杂字符串算法的高度专业化的字符串操作将轻松胜过正则表达式,但我所说的是存在简单解决方案且明显优于正则表达式的情况。 当然,重要的是主观的,但我认为合理的标准是,如果它只使用String , StringBuilder等,那么它可能很简单。 注意 :我非常感谢能够certificate以下内容的答案: 一个初学者级的正则表达式解决方案,解决非玩具现实生活中可怕的问题 简单的非正则表达式解决方案 专家级正则表达式重写,表现相当

在txt File Java中查找字符串(或行)

假设我有一个包含以下内容的txt文件: john dani zack 用户将输入一个字符串,例如“omar”我希望程序搜索该字符串“omar”的txt文件,如果它不存在,只需显示“不存在”。 我尝试了函数String.endsWith()或String.startsWith(),但当然显示“不存在”3次。 我3周前才开始使用java,所以我是一个新手…请耐心等待我。 谢谢。

从Java中的字符串中删除双引号

如何从String中删除双引号? 例如:我希望”abd产生abd ,没有双引号。 这是我尝试过的代码: line1 = line1.replaceAll(“\”(\\b[^\”]+|\\s+)?\”(\\b[^\”]+\\b)?\”([^\”]+\\b|\\s+)?\””,”\”$1$2$3\””);