- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个服务器-客户端程序,其中服务器将书籍信息从文本文件发送到客户端。我在服务器类上遇到运行时 NumberFormatException 错误。我为此拥有的代码:
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UDPServer {
private static ArrayList<ReadingMatter> books;
private static String stringUnderQuotes(String s)
{
Pattern p = Pattern.compile("\"([^\"]*)\"");
Matcher m = p.matcher(s);
while (m.find()) {
return m.group(1);
}
return null;
}
private static void getdata() throws IOException
{
BufferedReader br = new BufferedReader(new FileReader("ReadingMatterialInputFile.txt"));
try {
String category;
while ((category = br.readLine()) != null) {
String title = stringUnderQuotes(br.readLine());
String ISBN = stringUnderQuotes(br.readLine());
double price = Double.parseDouble(br.readLine().split(" ")[1]);
ReadingMatter rm;
if(category.equals("BOOK"))
{
String author[] = stringUnderQuotes(br.readLine()).split(",");
ArrayList<String> a = new ArrayList<String>();
Collections.addAll(a, author);
rm = new Book(title, ISBN, price, a);
}
else if(category.equals("MAGAZINE"))
{
String editor = br.readLine();
rm = new Magazine(title, ISBN, price, editor);
}
else if(category.equals("TEXTBOOK"))
{
String[] author = br.readLine().split(",");
boolean answers = Boolean.valueOf(br.readLine().split(" ")[1]);
ArrayList<String> a = new ArrayList<String>();
Collections.addAll(a, author);
rm = new TextBook(title, ISBN, price, a, answers);
}
else
{
String[] author = br.readLine().split(",");
String[] characters = br.readLine().split(",");
ArrayList<String> a = new ArrayList<String>();
Collections.addAll(a, author);
ArrayList<String> ch = new ArrayList<String>();
Collections.addAll(ch, characters);
rm = new Novel(title, ISBN, price, a, ch);
}
books.add(rm);
}
} finally {
br.close();
}
}
private static String find(String category, String title)
{
Iterator<ReadingMatter> itr = books.iterator();
while (itr.hasNext()) {
ReadingMatter element = itr.next();
if(element.getTitle().equals(title))
{
if(category.equals("BOOK") && element instanceof Book)
{
return element.toString();
}
else if(category.equals("MAGAZINE") && element instanceof Magazine)
{
return element.toString();
}
else if(category.equals("TEXTBOOK") && element instanceof TextBook)
{
return element.toString();
}
else if(category.equals("NOVEL") && element instanceof Novel)
{
return element.toString();
}
}
}
return null;
}
public static void main(String args[]) throws Exception
{
books = new ArrayList<ReadingMatter>();
getdata();
try
{
DatagramSocket serverSocket = new DatagramSocket(9000);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
receiveData = new byte[1024];
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
System.out.println ("Waiting for datagram packet");
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
String[] data = sentence.split(",");
String category = data[0].trim();
String title = data[1].trim();
System.out.println("Received data: \n");
System.out.println("Category: "+category);
System.out.println("Title: "+title);
String result = null;
if(category == "" || title == "")
{
result = "Category or Title data are not valid !!";
}
else
{
result = find(category, title);
if(result == null)
result = "Sorry !! Data Not found";
}
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
System.out.println ("\nReturning Query Result to client: \n\n"+result);
sendData = result.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
port);
serverSocket.send(sendPacket);
}
}
catch (SocketException ex) {
System.out.println("UDP Port 9000 is occupied.");
System.exit(1);
}
}
}
书籍类别还有其他类别,例如书籍、杂志、小说等。
它从中读取信息的文本文件如下:
BOOK
TITLE: "A Concise History of Australia"
ISBN: "9780521601016"
PRICE: 29.99
AUTHOR: "Stuart Macintyre"
BOOK
TITLE: "The Bloxworth Blue"
ISBN: "9780060213435"
PRICE: 12.95
AUTHOR: "William Corlett"
现在我在运行服务器时遇到此错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""9780060213435""
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at UDPServer.getdata(UDPServer.java:37)
at UDPServer.main(UDPServer.java:122)
我可以获得一些帮助来找出我做错的地方吗?谢谢大家。
最佳答案
您的错误消息字面上说明了一切。您正在尝试使用引号来格式化文字 "9780060213435"
。你不能在它周围加引号。删除引号,然后进行格式化。
关于JAVA:服务器客户端程序在读取文本文件时出现 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30376753/
我正在尝试使用 Integer.parseInt(simNumber) 将 String 转换为 int,但我收到错误消息。如何将 String 转换为 int?我在网上搜索了一下,找到了Intege
每次我尝试启动我的代码时,我总是遇到同样的错误: java.lang.NumberFormatException: For input string: "x" at java.lang.Numbe
在检查我的错误处理代码时偶然发现了这个。当您调用 Integer.parseInt(null) 时,Java 抛出 NumberFormatException 而 Float.parseFloat(n
如果有人可以看看我在 Selenium 方面遇到的问题。我尝试使用以下方法访问上述计算器中的结果: public String getAttributeValue(WebElement element
嗯,我很无聊,所以我想做一个二进制>十进制转换器。我将转换器的上限设置为 30 位数字 (1073741823) 或 (0111111111111111111111111111111)。我遇到的问题是
在以下代码中,Clojure (1.2) 打印出错误消息: (try (let [value "1,a"] (map #(Integer/parseInt %) (.split value
String str="123456.7855456677"; ParsePosition parsePosition = new ParsePosition(0); NumberFormat num
代码: String myVar = "1255763710960"; int myTempVar=0; try { myTempVar = Integer.valueOf(myVar); }
我在NumberFormatException代码中收到Grails错误,该错误是将电影分类到数据库中。该错误表明它来自cron插件。我已经完成了研究,并且一直在尝试使用NumberFormatExc
我在将字符串解析为原语时遇到问题。 File file1 = new File("bankData.txt"); Scanner sc = new Scanner(fi
所以我试图从日期列表中查找最新日期,但我不断收到 NumberFormatException。有什么办法可以解决这个问题吗? import java.util.*; public class Date
如果使用变量 bin1 它不会转换,但是如果我用 bin2 替换参数,它似乎可以工作。 我尝试使用 long 而不是 int。还是一样。 public class Test{ public s
我正在尝试找出如何在代码中捕获数字格式异常错误,这样如果用户在字符串中输入字母并且我的程序尝试将其解析为 int 我的程序将不会抛出错误而是停止并返回一个 boolean 值。我还试图了解,如果 tr
该程序的本质目的是将学生信息写入文件并从同一文件中读取。该程序包括一个 if 语句,用于判断学生是否处于良好信誉或留校察看状态,每个语句都有各自的文件(goodstand.txt 和 probatio
我正在用 Python/WLST 编写代码,以自动连接、启动和停止 weblogic 中的托管服务器。当我启动 Python 时,出现以下错误。 异常的含义是什么?我该如何解决它? Initializ
这是我的代码: public void setAreaAccessPoints(){ String mac = "",essid = "",status = ""; int stre
我正在用 Java 开发一个应用程序,发现了这个奇怪的行为: 如果通过控制面板将区域设置格式设置为匈牙利语(系统默认值),我会收到此异常,但如果我将其设置为英语格式,则它可以正常工作。也适用于虚拟 M
我正在尝试制作一个计算器应用程序,但不幸的是我无法解析字符串。 应用程序接受输入并将其显示在 EditText et2 中。当按下“等于”键时,计算器将执行以下工作。 et2 = (EditText)
我有一个文件,其中包含许多电影标题及其年份、5 星评级和长度。我正在尝试读取该文件并将标题、年份、评级和长度存储为变量。我遇到的问题是在我的检索年份的代码中。该代码可以编译,但在运行时,当它到达具有多
我正在解决亚马逊 Interview Street 网站上的 Connected Sets 问题 https://amazon.interviewstreet.com/challenges我的代码对于
我是一名优秀的程序员,十分优秀!