gpt4 book ai didi

java - 解码输入的字符串或字母

转载 作者:行者123 更新时间:2023-12-01 09:11:51 25 4
gpt4 key购买 nike

我有一个程序,我正在从文本文件中读取数据,该文件的每行数据均以“,”分隔。表示逗号左侧有字母,逗号右侧有其值。我想输入一个字母表,并希望我的程序给我它的数字值,该数字值位于文件中逗号的右侧。但不知怎的,程序没有给出任何输出,尽管我也尝试了其他条件,但它陷入了 while 条件。请有人帮助我。

import java.io.*;
import java.util.*;
public class Decoding_message_tom1{

public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new FileReader("I:\\Programming\\Java Tutorials\\sample.txt"));

// creating Link List
LinkedList<Decoding_node_tom1> list1 = new LinkedList<Decoding_node_tom1>();

// checking if line is not empty
String line;
while ((line = br.readLine()) != null)
{
// splitting the line with delimiter and storing in an array.
String data[] = line.split(",");

// Object creation for passing the values in constructor of Decoding_node_tom1 class.
Decoding_node_tom1 obj1 = new Decoding_node_tom1(data[0], data[1]);

// inserting data as data[0] and data[1] in LinkedList object.
list1.add(obj1);
}

// scanner class to scan what user has input
Scanner scn = new Scanner(System.in);

System.out.println("Enter Your encoded message.....");

// Storing entered Input from user in str1 variable
String str1 = scn.nextLine();

// Iterating through list1
Iterator itr = list1.iterator();


// This will run until we have next values in iterator.
while(itr.hasNext())
{
Decoding_node_tom1 var = (Decoding_node_tom1)itr.next();

// Checking if the value entered is equal to values in sample.txt file
if(var.encode_value == str1)
{
System.out.println("Decode value for " + var.encode_value + " is " + var.decode_value);
}
else
{
System.out.println("Entered Encode value is Invalid.... ");
System.exit(0);
}
}

}
}



public class Decoding_node_tom1 {

String encode_value;
String decode_value;

// Constructor of the above class for assigning the values during the time of object creation.
Decoding_node_tom1(String encode_value, String decode_value)
{
this.encode_value = encode_value;
this.decode_value = decode_value;
}
}

最佳答案

您的问题是这样的:

 if(var.encode_value == str1)

应该是

 if(var.encode_value.equals(str1))

原因是读取 stdin 时创建的字符串实例与解析文件时创建的字符串实例不同:两个具有相同值的不同对象。 == 运算符比较对象身份,即检查两个变量是否引用同一对象实例。 equals() 函数检查对象是否相等,即两个变量指向的两个对象的“值”是否相同。请注意,同一性意味着平等,但反之则不然。

关于java - 解码输入的字符串或字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40872962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com