二次读取法

2024-01-31

我必须为二次类编写一个读取方法,其中二次以 ax^2 + bx + c 的形式输入。该类的描述是这样的:

添加一个读取方法,要求用户提供标准格式的方程并正确设置三个实例变量。 (因此,如果用户输入 3x^2 - x,则将实例变量设置为 3、-1 和 0)。这将需要您之前完成的字符串处理。按原样显示输入的实际方程并正确标记为预期输出。

我能够通过使用字符串操作和 if else 语句来完成 ax^2 部分。但我不确定如何计算方程的 bx 和 c 部分,因为 bx 和 c 前面可能有符号。这是我如何完成该方法的 ax^2 部分。

public void read()
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Please enter a quadratic equation in standard format.");
    String formula = keyboard.next();
    String a = formula.substring(0, formula.indexOf("x^2"));
    int a2 = Integer.parseInt(a);
    if (a2 == 0)
    {
        System.out.println("a = 0");
    }
    else if (a2 == 1)
    {
        System.out.println("a = 1");
    }
    else
    {
        System.out.println("a = " + a2);
    }
 }

请随意编写任何代码作为示例。 任何帮助将不胜感激。


import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Mini {

    public static void main(String[] args) {
        int a = 0;
        int b = 0;
        int c = 0;

    String formula = " -x^2 + 6x - 5";
    formula = formula.replaceAll(" ", "");

    if (!formula.startsWith("+") && !formula.startsWith("-"))
        formula = "+" + formula;

        String exp = "^((.*)x\\^2)?((.*)x)?([\\+\\s\\-\\d]*)?$";
        Pattern p = Pattern.compile(exp);
        Matcher m = p.matcher(formula);

        System.out.println("Formula is " + formula);
        System.out.println("Pattern is " + m.pattern());

        while (m.find()) {
            a = getDigit(m.group(2));
            b = getDigit(m.group(4));
            c = getDigit(m.group(5));
        }

        System.out.println("a: " + a + " b: " + b + " c: " + c);

    }

    private static int getDigit(String data) {
        if (data == null) {
            return 0;
        } 
        else 
        {

            if (data.equals("+"))
            {
                return 1;
            }
            else if (data.equals("-"))
            {
                return -1;
            }
            else
            {
                try
                {
                    int num = (int) Float.parseFloat(data);
                    return num;
                }
                catch (NumberFormatException ex)
                {
                    return 0;
                }
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二次读取法 的相关文章

随机推荐

  • 在操作栏中动态添加操作项

    由于某些原因 我想在操作栏中完全动态地创建操作菜单项 但是 当我从代码添加菜单项时 它们显示为设置菜单项的溢出 下面是我的代码 有什么解决办法吗 Override public boolean onCreateOptionsMenu Men
  • 全外连接还是联合?

    困惑如何通过 FULL OUTER 或 UNION 实现这一点 我想以这样的方式加入结果 Table1 Table2 ID Name Salary ID Fruits 1 John 1000 1 Apples 1 Henry 4000 1
  • onchange select 做不同的mysql查询

    正如标题所说 我需要有关 onchange 的帮助 我有选择标签 当我从选择列表中选择某些内容时 我需要执行不同的 mysql 查询 例子
  • FunctionInterface Comparator 有 2 个抽象方法

    学习 Java 8 Lambda 只是想知道编译器如何知道 Comparator 中的哪个方法用于 lambda 表达式 好像不是SAM接口 它有2个抽象方法 FunctionalInterface public interface Com
  • PHP + SQL Server - 如何设置连接字符集?

    我正在尝试通过 php 将一些数据存储在 SQL Server 数据库中 问题是特殊字符未正确转换 我的应用程序的字符集是 iso 8859 1 服务器使用的是windows 1252 在插入之前手动转换数据没有帮助 似乎有一些 转换正在进
  • mpmath 矩阵求逆的替代方案或加速方案

    我正在用 python 编写一些代码 需要频繁地反转大方阵 100 200 行 列 我已经达到了机器精度的极限 所以开始尝试使用mpmath进行任意精度矩阵求逆 但它非常慢 即使使用gmpy 以精度 30 十进制 反转大小为 20 30 6
  • 如何使用 javascript 添加 svg?

    我正在使用此代码将 svg 插入到 div 标签中 var container document getElementById div id var svg document createElement svg svg setAttribu
  • 使用 Java 的 LinkedIn API 身份验证

    我是 Linked In API 认证新手 我去看了LinkedIn提供的API文档 它有 RUBY PYTHON 和 PHP 的示例 但我被要求使用 Java 实现同样的目标 我需要阅读链接中用户的个人资料 任何人都可以建议我任何链接或示
  • 机器 ID/主机名如何映射/解映射到对象 ID 中的 3 个字节?

    机器 ID 主机名如何映射 解映射到对象 ID 中的 3 个字节 我应该在哪里寻找Linux中的机器ID domU 12 31 39 13 02 56 看起来很奇怪 我不确定它是否正确 该函数不会从 ObjectID 获取您的主机名 它会向
  • Eigen::Ref<> 类的正确用法

    Eigen 引入了 Ref 类 以便在不需要编写模板函数时以 Eigen 对象作为参数编写函数 而无需使用不必要的临时变量 人们可以读到这一点here http eigen tuxfamily org dox TopicFunctionTa
  • 如何使用 htaccess 转发查询字符串?

    目前 我正在使用它来重写 URL RewriteEngine on RewriteRule page php name 1 NC So mysite com home被重写为mysite com page php name home 我怎样
  • Express:POST请求后Req.body未定义

    我在 app router 之前使用了express bodyParser 并且标题似乎是正确的 但我仍然在 req body 上未定义 var app express app use express bodyParser app use
  • ADO.NET 与 ADO.NET 实体框架

    ADO NET 和 ADO NET 实体框架哪个更快 没有什么比 ADO NET 数据读取器更快了 实体框架也在 地下室 使用了它 然而 实体框架可以帮助您从数据库映射到对象 对于 ADO NET 您必须自己完成此操作 这取决于你如何编程它
  • Dexie:如何添加到嵌套对象中的数组

    我正在使用 Dexie IndexedDB 包装器 并且尝试将一个对象添加到嵌套对象内的现有数组中 结构如下所示 Name John age 33 tags skill first NET second JAVA third special
  • Base64 编码数据有哪些缺点?

    在过去两年左右的时间里 我对多种类型的网络数据进行了 Base64 编码 图像 otf文件 文本等 它很实用 因为它作为一种临时的资产整合方法 数据直接嵌入CSS或HTML中 不必担心死链接 但是使用这种方法有什么缺点吗 Base64 编码
  • 使用sqlite、flutter应用程序导入数据库

    我的主要目标是使用 sqlite sqlflite 插件 将数据库导入到 flutter 应用程序中 而不必将所有创建表硬编码到应用程序代码中 我希望信息能够在本地访问手机 在飞行模式下从手机访问数据 这就是我使用 sqlite 的原因 我
  • Javascript - ReactJS - 以 ReadableStream 作为源显示图像

    我有 PNG 图像作为 ReadableStream 我需要使用此 ReadableStream 作为源显示 html 元素 img 我应该将其转换为某种东西吗 或者我该怎么做 谢谢你的答案 来自谷歌的docs https develope
  • 在另一个工厂内使用一个工厂 AngularJS

    我有一个模块 angular module myModule 然后是工厂 angular module myModule factory factory1 function some var s and functions 然后是另一家工厂
  • VB 中 .NET MVC3 Razor 视图中的命名空间引用?

    如何使用 Razor 视图引擎引用 NET MVC3 中的命名空间 据我所知 这可以在 C 中完成 using Namespace 然而在VB中这似乎不起作用 Imports Namespace 我说的是 vbhtml 文件内部 您正在使用
  • 二次读取法

    我必须为二次类编写一个读取方法 其中二次以 ax 2 bx c 的形式输入 该类的描述是这样的 添加一个读取方法 要求用户提供标准格式的方程并正确设置三个实例变量 因此 如果用户输入 3x 2 x 则将实例变量设置为 3 1 和 0 这将需