Tag: string

SimpleDateFormat方法解析中可能出现的错误

我收到一个表示日期的字符串,我需要将此字符串转换为日期,并validation字符串是否为有效日期。 我收到字符串33-12-2013一个解析方法返回日期01-01-2014,代码: Date fechaVencimientoFormateada; SimpleDateFormat formateador = new SimpleDateFormat( “dd-MM-yyyy” ); try { fechaVencimientoFormateada = formateador.parse( “33-12-2013” ); System.out.println( formateador.format(fechaVencimientoFormateada) ); } catch ( ParseException e ) { System.out.println(“ERROR!”); } 输出:2014年1月2日00:00:00 COT 2014 我期待一个ParseException,任何想法? 和其他例子: 字符串日期:365-12-2013输出:2014年11月30日00:00:00 COT 2014 字符串日期:1-24-2013输出:2014年12月1日00:00:00 COT 2014 为什么ParseException不抛?

java:’string index超出范围:-1’exception使用indexOf()

奇怪的问题。 我运行这个(非常基本的)程序来查找文件中的用户名和密码,程序应该将输入的密码与保存的密码进行比较。 但是,每次我得到一个奇怪的String index out of range: -1exception。 我之前遇到过类似的问题,但这次indexOf(‘.’)调用返回-1 ; 它不喜欢。 为什么indexOf()如果导致错误则返回-1 ? 这是来源: public String loginToClient() throws FileNotFoundException, IOException { //decryptUsers(); int tries; tries = 5; while (tries > 0) { System.out.println(“LOGIN”); String usnm = c.readLine(“Username: “); char [] passwd = c.readPassword(“Password: “); users = new FileInputStream(“users.fra”); DataInputStream dis = new DataInputStream(users); BufferedReader br […]

内存中创建了多少个字符串?

说我有这个String表达式 String hi = “Tom” + “Brady” + “Goat” 我知道字符串池“允许运行时通过在池中保留不可变字符串来节省内存” 字符串池 字符串池中将创建多少个字符串? 我最初的猜测是5 – “Tom” , “Brady” , “Goat” , “TomBrady” , “TomBradyGoat” ,因为String连接的操作顺序(从左到右?)或者它只是最终结果,“ TomBradyGoat“,它存储在字符串池中?

primitive-boolean To String concatenation / conversion

这是如何运作的? 我似乎无法找到答案。 boolean bool=true; System.out.println(“the value of bool is : ” + true); //or System.out.println(“the value of bool is : ” + bool); 幕后发生的事情是什么? 如何将布尔值转换为String,因为布尔值不能隐式类型转换? 是否涉及Autoboxing / Unboxing ? 是否以某种方式涉及toString()或String.valueOf()等方法?

String中的Java Date对象无法正常工作

我遇到了一个我似乎无法解决的顽固问题。 我已经在stackoverflow上寻找解决方案并找到了很多关于Java日期格式的post,但没有具体的问题。 基本上,我有一种情况,我需要将日期字符串转换为java.util.Date对象。 我正在使用Date和SimpleDateFormat类。 对于我遇到的大多数日期,它的工作正常。 但是对于某些日期,它可以工作,但会改变实际日期。 两个示例日期是: 2月24日星期五16:45:40太平洋标准时间 – >更改为 – >星期五06月16日16:45:40太平洋标准时间2012年 2012年1月13日星期三10:00:42 – >更改为 – > Wed Jan 04 09:00:42 PST 2012 知道为什么日期会发生变化吗? 有什么方法可以轻松避免这种情况或以不同的方式做到这一点? 我的代码复制如下。 你可以尝试看看我在说什么。 提前致谢! 您可以使用以下JSP代码尝试此操作: 我得到以下输出: First Test ———— Original:Fri Feb 24 16:45:40 PST 2012: Date Obj:Fri Jan 06 16:45:40 PST 2012: Second Test ———– Original:Wed Jun 13 10:00:42 PDT 2012: […]

返回DataHandler中的字符串

我用Java创建了一个返回DataHandler的Web服务。 这必须能够返回一个工作正常的File 。 但它也应该能够返回一个String 。 知道如何使用DataHandler传输String吗?

解析int时的NumberFormatException

所以我正在创建文件读取器/写入器,可以访问给定的文件并保存/读取它。我从文件读取时遇到问题。 内容是整数,字符串和double用“|”分隔 分隔符。 我使用StringTokenizer来分隔标记并将它们保存到每个单独的变量,但是当我读取整数时,我得到一个NumberFormatException,即使字符串只包含一个int。 这是代码: FileReader fr = new FileReader(filename); BufferedReader buff = new BufferedReader(fr); String line; while ((line = buff.readLine()) != null) { StringTokenizer st = new StringTokenizer(line, “|”); while (st.hasMoreElements()) { int Id = Integer.parseInt(st.nextToken()); String Name = st.nextToken(); double cordX = Double.parseDouble(st.nextToken()); double cordY = Double.parseDouble(st.nextToken()); } } 该文件的示例行: 8502113|Aarau|47.391355|8.051251 而错误: java.lang.NumberFormatException: […]

无法将字符串转换为JsonArray

如何将此String转换为gson.JsonArray? String s= “[[“110917 “, 3.0099999999999998, -0.72999999999999998, 2.8500000000000001, 2.96, 685.0, 38603.0], [“110917 “, 2.71, 0.20999999999999999, 2.8199999999999998, 2.8999999999999999, 2987.0, 33762.0]]”; 这是我的代码: com.google.gson.*; public static void main(String[] args) { //Declared S here System.out.println(“String to Json Array Stmt”); JsonParser parser = new JsonParser(); JsonElement tradeElement = parser.parse(s.toString()); JsonArray trade = tradeElement.getAsJsonArray(); System.out.println(trade); } 这是将此Collections字符串转换为JSonArray的方法吗?

在groovy中切一个字符串

我有一个18个字符的字符串,我想要字符2-8。 在python中,我可以这样做: sliceMe = “nnYYYYYYnnnnnnnnnn” print sliceMe[2:8] 版画 YYYYYY 我正在寻找一种在groovy中做同样事情的方法,并且每个解释都非常长。 什么是优雅的接受方式在groovy(或java)这样做?

Java 8:为什么我不能将这个二进制字符串解析为long?

长话短说,我在Java中搞乱了一些基本的遗传算法。 我用了long来存储我的基因,但我在调试时使用二进制字符串来提高可读性。 我遇到了一个奇怪的情况,我无法解析一些以1开头的二进制字符串(我不知道是否总是这样,但它似乎与长度为64个字符的字符串一致)。 我能够通过以下示例复制此内容: String binaryString = Long.toBinaryString(Long.MIN_VALUE); long smallestLongPossibleInJava = Long.parseLong(binaryString, 2); 将抛出并生成以下堆栈跟踪: Exception in thread “main” java.lang.NumberFormatException: For input string: “1000000000000000000000000000000000000000000000000000000000000000” at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:592) at com.company.Main.main(Main.java:25) 鉴于我有一个正确格式化的六十四个字符的二进制字符串,为什么我不能解析一些字符串? 大多数情况下,我的字符串是随机生成的,但在上面的实例中,这应该可以工作(看作Long.MIN_VALUE肯定是Java中的有效长Long.MIN_VALUE )。