当前位置: 首页 > 知识库问答 >
问题:

字符串文本中标记的语法错误

颜嘉福
2023-03-14

我在几乎所有的系统上都会看到“令牌语法错误,请删除这些令牌”。出来系统第一个实例后的println文本。出来普林顿。我不知道这意味着什么,也不知道如何解决?我是一个非常新的开始,所以这个代码中可能有多个错误。我还得到了“令牌上的语法错误”“Double is”“无效的AssignmentOperator”“和”“squared is”“,以及无效的AssignmentOperator”错误。这是一个类的作业,最终结果应该是n的对立面,n是y的两倍是y,n的一半是y,n的平方是y,n的倒数是y,n的十分之一是y,y的平方是z,n减去n的最后一位是y,n和n的和1,n 2是y谢谢!

import java.util.Scanner;
public class Arithmetic {
   public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter an integer: ");
        int n = scanner.nextInt();
        int opposite = n*-1;
        System.out.println("The opposite of" n "is" opposite);
        int twoTimes = n*2;
        System.out.println(n "doubled is" twoTimes);
        int half = n/2;
        System.out.println("half of "n "is" half);
        int square= n*n;
        System.out.println(n "squared is" square);
        int reciprocal= 1/n;
        System.out.println("the reciprocal of" n "is" reciprocal);
        double fraction = n*.10;
        double fractionTwo = fraction*fraction;
        System.out.println("one-tenth of" n "is" fraction "and" fraction "squared is" fractionTwo);
        // int lastDigit = 
        // System.out.println();
        int sum= n+1;
        int sumTwo= n+2;
        int sumTotal= sum + sumTwo;
        System.out.println("the sum of" n "and" sum "and" sumTwo "is" sumTotal);

    }
}

**此外,如果有人愿意帮助我找出“n1”/“n2”公式,以及如何在代码中格式化,我将不胜感激!

共有2个答案

吴靖
2023-03-14

这不是你连接(链接)两个字符串的方式!

这个代码和其他类似的代码,

    System.out.println(n "doubled is" twoTimes);

是错误的。

我想你是想把n"倍增是"twoTimes连在一起,对吧?

现在你正在用空格连接它们。但是Java中的空格字符不会连接字符串。这就是编译器抱怨的原因。

在Java中,都是用来做加法和串接的!所以你应该把上面的修改为:

System.out.println(n + "doubled is" + twoTimes);

但是等等!你的车位去哪了?这是因为不会自动为您添加空间,您需要自己添加。

System.out.println(n + " doubled is " + twoTimes);

或者,您可以使用String.format来格式化字符串。这个啊

/* Explanation: n will be "inserted" to the first %d and twoTimes will
be inserted to the second %d. And %d basically means "express the thing in
decimal"*/
String.format("%d doubled is %d", n, twoTimes)

n + " doubled is " + twoTimes

关于你的公式问题:

在Java中,有两种不同的数字类型,intdouble。(实际上还有很多,但它们是不相关的)intdouble在分开时做不同的事情。它们有不同的文字。

5intliteral,5.0doubleliteral。看见没有小数点的数字称为ints,有小数点的数字称为doubles。

你的配方有什么问题?我们先来看看把int分割的结果是什么

int / int: 1 / 5 = 0
int / double: 1 / 5.0 = 0.2
double / int: 1.0 / 5 = 0.2
double / double: 1.0 / 5.0 = 0.2
int / 0: 1 / 0 = Exception!
double / 0: 1.0 / 0 = NaN

在代码中:

int reciprocal= 1/n;

和其他类似的行,您正在执行int的除法。这就是为什么上面的代码不起作用。你应该做的是把其中一个数字换成双份!并且还将类型更改为

double reciprocal = 1.0 / n;
------              ---
changes          here as well!
廖令
2023-03-14

这段代码有一些错误。

System.out.println("The opposite of" n "is" opposite);

应该是:

System.out.println("The opposite of" + n + "is" + opposite);

当我们想要组合字符串时,我们使用符号。

 类似资料:
  • 我已经将我的组合语法分解为两种Lexer和Parser语法: 组合语法非常简单,如: 然后我创建了一个FluentLexer。g4带有lexer规则和FluentParser。g4带有解析器规则。 然后我在FluentParser上导入了FluentLexer语法。 我尝试了两种选择: > 在Fluent Grammar中使用导入FluentLexer: 具有选项结构: <代码>选项{语言=Jav

  • 问题内容: 我正在使用nltk,因此我想创建自己的自定义文本,就像nltk.books上的默认文本一样。但是,我只是想起像 我想发现任何输入“文本”的方式: python或nltk的哪种方法允许我执行此操作。更重要的是,我如何消除标点符号? 问题答案: 这实际上是在nltk.org的主页上:

  • 这是我的XML解析器语法: 和lexer: 但是,当我使用以下命令检索C#代码中的STRING位时,这是有效的: 我把文本用引号括起来,比如:“hello”,而不是hello。因此,我尝试将解析器语法更改为: 或 我得到了错误:“无法在非组合语法中为字符串文字创建隐式标记” 我很困惑,为什么解析器语法中允许“=”而不是引号,以及如何更改解析器以检索没有引号的文本。而且,lexer似乎已经处理掉了引

  • 问题内容: 我有一个文本文件,其中包含用’|’分隔的数据。我需要获取每个字段(以“ |”分隔)并对其进行处理。文本文件可以显示如下: ABC | DEF || FGHT 我正在使用字符串令牌生成器(JDK 1.4)来获取每个字段值。现在的问题是,我应该在DEF之后得到一个空字符串,但是我没有在DEF和FGHT之间得到空白。 我的结果应该是 -ABC,DEF,“”,FGHT, 但我正在获取 ABC,

  • 问题内容: 我正在用Java 实现分流场算法,这是我的AP计算机科学课的一个附带项目。我已经用Javascript实现了一个简单的脚本,只带有基本的算术表达式(加法,减法,乘法,除法,求幂)。要将其拆分为数组,我要做的是找到每个运算符()以及数字和括号,然后在它们周围放置一个空格,然后将其拆分为数组。例如,将infix字符串制成,然后在空白处分割。 但是,我感觉这种方法非常慢,并且在您开始添加数学

  • 有人能告诉我这个: 在第二行,我得到一个错误。但这行得通: 我需要更多的文字后,我打印的名称。有人知道怎么做吗?