我正在尝试使用带有分数的文本文件。将字符串的分数转换为bigdecimal。然后分割并将结果存储在堆栈中。

txt文件中的每一行都是用char /分隔分子和分母随机生成的一个分数。分子和分母的长度可以是1-50,并且必须大于0.这些数字是随机生成的,因此需要存储小数位数。在我的代码中,我先将字符串转换为BigInteger,然后再转换为BigDecimal。这对第一个字符串起作用,但是对第二个字符串的分子起作用。

public static void main(String[] args) throws FileNotFoundException {

File file = new File("C:/Users/eric/workspace/sortProj/src/data.txt");

FileReader fr = new FileReader(file);

Scanner scanner = new Scanner(fr);

Stack pile = new Stack();

String numerator = "";

String denominator = "";

while (scanner.hasNextLine()) {

String str = scanner.nextLine();

numerator = "";

denominator = "";

separateStrings(pile, numerator, denominator, str);

}

}

// appends chars to numerator string until it hits '/' then appends chars to

// denominator string

public static void separateStrings(Stack stack,

String numerator, String denominator, String source) {

boolean isNumerator = true;

for (int i = 0; i < source.length(); i++) {

if (source.charAt(i) == '/') {

isNumerator = false;

}

else if (isNumerator == true) {

numerator += source.charAt(i);

}else{

denominator += source.charAt(i);

}

}

//converts and stores fractions.

BigDecimal BD2 = new BigDecimal(new BigInteger(denominator, denominator.length()));

BigDecimal BD1 = new BigDecimal(new BigInteger(numerator, numerator.length()));

stack.push(BD1.divide(BD2, 20, BigDecimal.ROUND_FLOOR));

}我得到了这个错误。

线程“main”中的异常java.lang.NumberFormatException:基数超出范围

java.math.BigInteger。(Unknown Source)

在sorting.separateStrings(sorting.java:60)< ---是我试图将分子转换为BigInteger的地方。

在sorting.main(sorting.java:26)< ---我在那里调用separateStrings。

它打破的字符串是分子=“9821020392310432153773517114542035029”

我不知道为什么我得到这个错误。我的印象是BigInteger可以

最大长度为50.另外,它在txt的第一行是“8731472450870/1572580584296783758”。

java 中的radix_线程“main”中的异常java.lang.NumberFormatException:Radix超出范围相关推荐

  1. java.线程池 线程数_如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...

    java.线程池 线程数 此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因 ...

  2. 如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...

    此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因此它是在线程" ...

  3. Java并发编程之线程池中的Future

    线程池中的Future: 线程池的典型使用场景 ExecutorService executorService = Executors.newFixedThreadPool(10);//此处Task为 ...

  4. java协程和线程_Kotlin中的线程和协程之间的区别

    由于我仅在JVM上使用协程,因此我将讨论JVM后端,也有Kotlin本机和Kotlin JavaScript,但是这些Kotlin后端不在我的讨论范围之内. 因此,让我们开始将Kotlin协程与其他语 ...

  5. main线程 子线程 顺序_在主线程main中开启子线程thread示例

    主线程中开启子线程代码实例: 创建CancleThread类 继承 Thread,对run()方法进行重写代码实例: class CancleThread extends Thread { priva ...

  6. WinMain中的Console与main中的Window

    1.如何在WinMain中创建一个Console. 调用AllocConsole分配一个Console资源:调用GetStdHandle获得OS的标准设备(输入,输出或错误),此函数返回一个句柄,若要 ...

  7. java中怎样创建线程_java中的线程创建和使用

    Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口.Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合 ...

  8. java队列怎么实现线程_Java中利用线程和队列实现入库操作

    Java单线程中,如果需要大量的数据库操作,会在IO方面产生瓶颈,特别是数据库连接失败时,大量资源会消耗在数据库连接的检测上,从而使程序的实时响应速度变慢.解决的办法就是将数据库操作单独放置在一个线程 ...

  9. 在java中必须要有main吗_在一个Java应用程序中main方法必须被说明为_____。

    应用程下列哪些是社区工作的社会功能( ) 比例调节是有差调节,序中PD调节是无差调节. 当广义过程控制通道时间常数较大或容量滞后较大,必须被说应引入微分环节调节. PID 调节器变为纯比例作用,应用程 ...

  10. java 杀死僵死的线程_Ubuntu中找到并杀死僵尸进程

    Ubuntu中产生zombie进程让人很懊恼啊.Windows中在任务管理器里直接找到无响应的进程并结束他就行了,但是ubuntu中需要用命令去解决. System information as of ...

最新文章

  1. 异部时钟电路的FPGA设计
  2. 从蛋白质结构到功能的生物信息学研究 From Protein Structure to Function with Bioinformatics PDF
  3. Sentinel(四)之工作主流程
  4. LogManager分析
  5. shell mysql备份脚本_mysql备份脚本(shell)
  6. 实验一 命令解释程序的编写
  7. 三步捋清链表相关题型!
  8. CCNA学习笔记 基础知识回顾(4)
  9. 永中集成Office 2013 简体中文免费版
  10. wifi 频段表_wifi频段如何设置为5ghz
  11. 解决Ubuntu下任务栏不显示任务的问题
  12. 一个简单的log2(x)的快速计算方法
  13. 蓝桥杯比赛时间在什么时候_什么时候立冬2020年农历具体时间
  14. 从开发平台到智能供应链,AI技术如何推动企业智能化升级?
  15. 1007 Maximum Subsequence Sum (25 分) java 题解
  16. python print 字体大小_Python print 玩转“点阵字”
  17. java二进制计算_Java 二进制,八进制,十进制,十六进制转换运算
  18. 搜狗输入法如何输入直角引号(「『』」 )
  19. 盘点那些程序员必备的小众网站,建议收藏!
  20. Unable to negotiate with xx.xx port xx: no matching host key type found. Their offer: ssh-rsa....

热门文章

  1. opencv3.4.2调用训练好的Openpose模型
  2. Python mysql-表的创建,删除和更新
  3. js 作为属性的变量
  4. Windows 10 开发日记(二)-- 手势顺序调研
  5. ASP.NET 常用语句代码
  6. 【Github使用感触之一】使多文件多版本变得简单
  7. 【OpenCV学习笔记】【函数学习】十(常用的OpenCV函数汇总说明)
  8. Python使用matplotlib画动态图
  9. Python弹球游戏(tkinter模块编写)
  10. PyTorch批训练及优化器比较