Hi, I'm trying to write a java program that will read in the scanner input from a user and outputs an postfix expression and answer
so if you typed in:
A = 5
B = 7
$PART2
AB+

the output would be
AB+ = 12

I'm having trouble with the scanner input I can make it so a user
can enter a letter and a number, but I'm having trouble trying to make the program shift so when the user enters $PART2 it will then begin to read in the post fix expressions.

If anyone could help I would greatly appreciate it.

import java.util.*;
import java.io.*;
import java.util.Scanner;
import java.util.Stack;


public class PostEval
{

 static public void main(String args[])
 {

     Scanner scanner = new Scanner(System.in);
  Stack<String> postFix = new Stack<String>();
  String part2 = "$PART2";
     System.out.println("Input Letter and Number it equals: ");
  while(scanner.hasNext())
  {
        String letter = scanner.next();
     char equals=(scanner.next()).charAt(0);
        int number = scanner.nextInt();
     System.out.println("You Inputted:"+ letter+ equals+ number);
     if(letter == "$PART2")
     {
         while(scanner.hasNext())
         {
           String postfix = scanner.nextLine();
           System.out.println(postfix);
         }
     }
   
  }

Recommended Answers

All 2 Replies

if(letter == "$PART2")

You can't test a String's contents by using '=='. It only works for primitive types, String is an Object. Use the String class's equal method

if(letter == "$PART2")

You can't test a String's contents by using '=='. It only works for primitive types, String is an Object. Use the String class's equal method

Just correcting, he means the equals() method of the String class

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.