import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;
public class NC {
static Scanner in = new Scanner(System.in);
public static void main(String[] args){
File FileNumberChanger = new File("C:/Users/Michael/Desktop/FileNumberChanger.txt");
try{
FileWriter fw = new FileWriter(FileNumberChanger);
FileReader fr = new FileReader(FileNumberChanger);
BufferedWriter bw = new BufferedWriter(fw);
BufferedReader br = new BufferedReader(fr);
String numVText = br.readLine();
int numVInt = 0;
**if(numVText.equals("0")){ // Doesn't work
numVInt = 0;
}**
if(numVText.equals("1")){
numVInt = 1;
}
if(numVText.equals("2")){
numVInt = 2;
}
if(numVText.equals("3")){
numVInt = 3;
}
if(numVText.equals("4")){
numVInt = 4;
}
if(numVText.equals("5")){
numVInt = 5;
}
if(numVText.equals("6")){
numVInt = 6;
}
if(numVText.equals("7")){
numVInt = 7;
}
if(numVText.equals("8")){
numVInt = 8;
}
if(numVText.equals("9")){
numVInt = 9;
}
if(numVText.equals("10")){
numVInt = 10;
}
if(numVText.equals("11")){
numVInt = 11;
}
if(numVText.equals("12")){
numVInt = 12;
}
if(numVText.equals("13")){
numVInt = 13;
}
if(numVText.equals("14")){
numVInt = 14;
}
if(numVText.equals("15")){
numVInt = 15;
}
if(numVText.equals("16")){
numVInt = 16;
}
if(numVText.equals("17")){
numVInt = 17;
}
if(numVText.equals("18")){
numVInt = 18;
}
if(numVText.equals("19")){
numVInt = 19;
}
if(numVText.equals("20")){
numVInt = 20;
}
if(numVText.equals("21")){
numVInt = 21;
}
if(numVText.equals("22")){
numVInt = 22;
}
if(numVText.equals("23")){
numVInt = 23;
}
if(numVText.equals("24")){
numVInt = 24;
}
if(numVText.equals("25")){
numVInt = 25;
}
if(numVText.equals("26")){
numVInt = 26;
}
if(numVText.equals("27")){
numVInt = 27;
}
if(numVText.equals("28")){
numVInt = 28;
}
if(numVText.equals("29")){
numVInt = 29;
}
if(numVText.equals("30")){
numVInt = 30;
}
if(numVText.equals("31")){
numVInt = 31;
}
if(numVText.equals("32")){
numVInt = 32;
}
if(numVText.equals("33")){
numVInt = 33;
}
if(numVText.equals("34")){
numVInt = 34;
}
if(numVText.equals("35")){
numVInt = 35;
}
if(numVText.equals("36")){
numVInt = 36;
}
if(numVText.equals("37")){
numVInt = 37;
}
if(numVText.equals("38")){
numVInt = 38;
}
if(numVText.equals("39")){
numVInt = 39;
}
if(numVText.equals("40")){
numVInt = 40;
}
if(numVText.equals("41")){
numVInt = 41;
}
if(numVText.equals("42")){
numVInt = 42;
}
if(numVText.equals("43")){
numVInt = 43;
}
if(numVText.equals("44")){
numVInt = 44;
}
if(numVText.equals("45")){
numVInt = 45;
}
if(numVText.equals("46")){
numVInt = 46;
}
if(numVText.equals("47")){
numVInt = 47;
}
if(numVText.equals("48")){
numVInt = 48;
}
if(numVText.equals("49")){
numVInt = 49;
}
if(numVText.equals("50")){
numVInt = 50;
}
if(numVText.equals("51")){
numVInt = 51;
}
if(numVText.equals("52")){
numVInt = 52;
}
if(numVText.equals("53")){
numVInt = 53;
}
if(numVText.equals("54")){
numVInt = 54;
}
if(numVText.equals("55")){
numVInt = 55;
}
if(numVText.equals("56")){
numVInt = 56;
}
if(numVText.equals("57")){
numVInt = 57;
}
if(numVText.equals("58")){
numVInt = 58;
}
if(numVText.equals("59")){
numVInt = 59;
}
if(numVText.equals("60")){
numVInt = 60;
}
if(numVText.equals("61")){
numVInt = 61;
}
if(numVText.equals("62")){
numVInt = 62;
}
if(numVText.equals("63")){
numVInt = 63;
}
if(numVText.equals("64")){
numVInt = 64;
}
if(numVText.equals("65")){
numVInt = 65;
}
if(numVText.equals("66")){
numVInt = 66;
}
if(numVText.equals("67")){
numVInt = 67;
}
if(numVText.equals("68")){
numVInt = 68;
}
if(numVText.equals("69")){
numVInt = 69;
}
if(numVText.equals("70")){
numVInt = 70;
}
if(numVText.equals("71")){
numVInt = 71;
}
if(numVText.equals("72")){
numVInt = 72;
}
if(numVText.equals("73")){
numVInt = 73;
}
if(numVText.equals("74")){
numVInt = 74;
}
if(numVText.equals("75")){
numVInt = 75;
}
if(numVText.equals("76")){
numVInt = 76;
}
if(numVText.equals("77")){
numVInt = 77;
}
if(numVText.equals("78")){
numVInt = 78;
}
if(numVText.equals("79")){
numVInt = 79;
}
if(numVText.equals("80")){
numVInt = 80;
}
if(numVText.equals("81")){
numVInt = 81;
}
if(numVText.equals("82")){
numVInt = 82;
}
if(numVText.equals("83")){
numVInt = 83;
}
if(numVText.equals("84")){
numVInt = 84;
}
if(numVText.equals("85")){
numVInt = 85;
}
if(numVText.equals("86")){
numVInt = 86;
}
if(numVText.equals("87")){
numVInt = 87;
}
if(numVText.equals("88")){
numVInt = 88;
}
if(numVText.equals("89")){
numVInt = 89;
}
if(numVText.equals("90")){
numVInt = 90;
}
if(numVText.equals("91")){
numVInt = 91;
}
if(numVText.equals("92")){
numVInt = 92;
}
if(numVText.equals("93")){
numVInt = 93;
}
if(numVText.equals("94")){
numVInt = 94;
}
if(numVText.equals("95")){
numVInt = 95;
}
if(numVText.equals("96")){
numVInt = 96;
}
if(numVText.equals("97")){
numVInt = 97;
}
if(numVText.equals("98")){
numVInt = 98;
}
if(numVText.equals("99")){
numVInt = 99;
}
if(numVText.equals("100")){
numVInt = 100;
}
System.out.println(numVInt);
String usersFun = in.next();
int usersInt = in.nextInt();
if(usersFun.equals("set")){
numVInt = usersInt;
}
if(usersFun.equals("add")){
numVInt += usersInt;
}
if(usersFun.equals("take")){
numVInt -= usersInt;
}
if(numVInt == 0){
numVText = "0";
}
if(numVInt == 1){
numVText = "1";
}
if(numVInt == 2){
numVText = "2";
}
if(numVInt == 3){
numVText = "3";
}
if(numVInt == 4){
numVText = "4";
}
if(numVInt == 5){
numVText = "5";
}
if(numVInt == 6){
numVText = "6";
}
if(numVInt == 7){
numVText = "7";
}
if(numVInt == 8){
numVText = "8";
}
if(numVInt == 9){
numVText = "9";
}
if(numVInt == 10){
numVText = "10";
}
if(numVInt == 11){
numVText = "11";
}
if(numVInt == 12){
numVText = "12";
}
if(numVInt == 13){
numVText = "13";
}
if(numVInt == 14){
numVText = "14";
}
if(numVInt == 15){
numVText = "15";
}
if(numVInt == 16){
numVText = "16";
}
if(numVInt == 17){
numVText = "17";
}
if(numVInt == 18){
numVText = "18";
}
if(numVInt == 19){
numVText = "19";
}
if(numVInt == 20){
numVText = "20";
}
if(numVInt == 21){
numVText = "21";
}
if(numVInt == 22){
numVText = "22";
}
if(numVInt == 23){
numVText = "23";
}
if(numVInt == 24){
numVText = "24";
}
if(numVInt == 25){
numVText = "25";
}
if(numVInt == 26){
numVText = "26";
}
if(numVInt == 27){
numVText = "27";
}
if(numVInt == 28){
numVText = "28";
}
if(numVInt == 29){
numVText = "29";
}
if(numVInt == 30){
numVText = "30";
}
if(numVInt == 31){
numVText = "31";
}
if(numVInt == 32){
numVText = "32";
}
if(numVInt == 33){
numVText = "33";
}
if(numVInt == 34){
numVText = "34";
}
if(numVInt == 35){
numVText = "35";
}
if(numVInt == 36){
numVText = "36";
}
if(numVInt == 37){
numVText = "37";
}
if(numVInt == 38){
numVText = "38";
}
if(numVInt == 39){
numVText = "39";
}
if(numVInt == 40){
numVText = "40";
}
if(numVInt == 41){
numVText = "41";
}
if(numVInt == 42){
numVText = "42";
}
if(numVInt == 43){
numVText = "43";
}
if(numVInt == 44){
numVText = "44";
}
if(numVInt == 45){
numVText = "45";
}
if(numVInt == 46){
numVText = "46";
}
if(numVInt == 47){
numVText = "47";
}
if(numVInt == 48){
numVText = "48";
}
if(numVInt == 49){
numVText = "49";
}
if(numVInt == 50){
numVText = "50";
}
if(numVInt == 51){
numVText = "51";
}
if(numVInt == 52){
numVText = "52";
}
if(numVInt == 53){
numVText = "53";
}
if(numVInt == 54){
numVText = "54";
}
if(numVInt == 55){
numVText = "55";
}
if(numVInt == 56){
numVText = "56";
}
if(numVInt == 57){
numVText = "57";
}
if(numVInt == 58){
numVText = "58";
}
if(numVInt == 59){
numVText = "59";
}
if(numVInt == 60){
numVText = "60";
}
if(numVInt == 61){
numVText = "61";
}
if(numVInt == 62){
numVText = "62";
}
if(numVInt == 63){
numVText = "63";
}
if(numVInt == 64){
numVText = "64";
}
if(numVInt == 65){
numVText = "65";
}
if(numVInt == 66){
numVText = "66";
}
if(numVInt == 67){
numVText = "67";
}
if(numVInt == 68){
numVText = "68";
}
if(numVInt == 69){
numVText = "69";
}
if(numVInt == 70){
numVText = "70";
}
if(numVInt == 71){
numVText = "71";
}
if(numVInt == 72){
numVText = "72";
}
if(numVInt == 73){
numVText = "73";
}
if(numVInt == 74){
numVText = "74";
}
if(numVInt == 75){
numVText = "75";
}
if(numVInt == 76){
numVText = "76";
}
if(numVInt == 77){
numVText = "77";
}
if(numVInt == 78){
numVText = "78";
}
if(numVInt == 79){
numVText = "79";
}
if(numVInt == 80){
numVText = "80";
}
if(numVInt == 81){
numVText = "81";
}
if(numVInt == 82){
numVText = "82";
}
if(numVInt == 83){
numVText = "83";
}
if(numVInt == 84){
numVText = "84";
}
if(numVInt == 85){
numVText = "85";
}
if(numVInt == 86){
numVText = "86";
}
if(numVInt == 87){
numVText = "87";
}
if(numVInt == 88){
numVText = "88";
}
if(numVInt == 89){
numVText = "89";
}
if(numVInt == 90){
numVText = "90";
}
if(numVInt == 91){
numVText = "91";
}
if(numVInt == 92){
numVText = "92";
}
if(numVInt == 93){
numVText = "93";
}
if(numVInt == 94){
numVText = "94";
}
if(numVInt == 95){
numVText = "95";
}
if(numVInt == 96){
numVText = "96";
}
if(numVInt == 97){
numVText = "97";
}
if(numVInt == 98){
numVText = "98";
}
if(numVInt == 99){
numVText = "99";
}
if(numVInt == 100){
numVText = "100";
}
if(numVInt > 100){
numVText = "100";
}
bw.close();
br.close();
fw.close();
fr.close();
}
catch(Exception e){
e.printStackTrace();
}
}
为什么这不起作用? 我试图从文件中获取带有数字值的字符串(通过说出字符串ex =" 0"),然后查看值并将它们转换为整数。我不知道如何解决这个问题。请帮忙。
顺便说一下,我使用eclipse,如果它与它有任何关系。问题是它从这里捕获了一个例外:
if(numVText.equals("0")){
numVInt = 0;
}
答案 0 :(得分:1)
而不是使用可怕数量的if
语句,而是使用以下内容:
int result = Integer.parseInt(inputString);
要转换回来,请使用:
String decimalNumber = Integer.toString(someInt);
你如何包含你的代码有什么问题:我只能假设你得到java.lang.NullPointerException
。在这种情况下,变量numVInt
为null
- 您尝试在其上调用方法,但它是null
,因此您会遇到此异常。
来自BufferedReader.readLine()
的官方文档:
读取一行文字。一条线被认为是任何一条线终止的 换行符(
\n
),回车符(\r
)或回车符 然后立即换行。返回:包含的字符串 该行的内容,不包括任何行终止字符, 如果已到达流的末尾,则为
null
抛出:
IOException
- 如果发生I / O错误
因此变量为null
表示已到达文件末尾:您应该在继续之前检查null
值,如下所示(完全修复的代码,它编译,但未经测试):
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class NC
{
private static final Scanner in = new Scanner(System.in);
public static void main(String[] args) throws Exception // You might need to handle exceptions better
{
File fileNumberChanger = new File("C:/Users/Michael/Desktop/FileNumberChanger.txt");
int numVInt = -1;
try(FileInputStream fis = new FileInputStream(fileNumberChanger);
InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(isr))
{
String gottenLine = br.readLine();
if (gottenLine == null)
{
System.err.println("File does not contain a single line!");
return;
}
numVInt = Integer.parseInt(gottenLine); // Might throw NumberFormatException if number is in invalid format
System.out.println("Current number: " + numVInt);
String usersFun = in.next();
int usersInt = in.nextInt();
switch(usersFun)
{
case "set":
numVInt = usersInt;
break;
case "add":
numVInt += usersInt;
break;
case "take":
numVInt -= usersInt;
default:
System.err.println("Invalid user command!");
return; // End program
}
System.out.println("New number: " + numVInt);
}
try(FileOutputStream fos = new FileOutputStream(fileNumberChanger);
OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
BufferedWriter bw = new BufferedWriter(osw))
{
// This will completely overwrite the file!
bw.write(Integer.toString(numVInt));
}
}
}