Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从.txt文件中读取字符串,然后将其转换为整数_Java - Fatal编程技术网

Java 从.txt文件中读取字符串,然后将其转换为整数

Java 从.txt文件中读取字符串,然后将其转换为整数,java,Java,我试图从文本文件中读取一些数据,其格式如下: 10 1 s q 代码如下: public static void main(String[] args) { String line = null; int[] b= new int[10]; int i = 0; try { BufferedReader bf = new BufferedReader(new FileReader("C:\\myFil

我试图从文本文件中读取一些数据,其格式如下:

10
1
s
q
代码如下:

public static void main(String[] args) {

        String line = null;

        int[] b= new int[10];
        int i = 0;

        try {
            BufferedReader bf = new BufferedReader(new FileReader("C:\\myFile.txt"));

            while ((line = bf.readLine()) != null) {

                b[i] = Integer.parseInt(line);
                i++;

            }

        } catch (IOException e) {
            System.out.println(e.getMessage());

        }
}
b[i]=Integer.parseInt(行)轻松读取文件中的第一行是“10”,第二行是“1”,但对于第三行,编译器给出以下错误

Exception in thread "main" java.lang.NumberFormatException: For input string: "s"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at test.Main.main(Main.java:41)

我需要将字符串“s”和“H”转换为整数值,然后将其存储到整数类型的数组b中。

如果您只有一个字符,则此操作应该有效:

char c = b[i].charAt(0);
int x = c - 48;

如果您只有一个字符,则此操作应该有效:

char c = b[i].charAt(0);
int x = c - 48;

首先检查字符串是否包含字母或数字

if(line.matches("[a-zA-Z]+"))
    int a=(int)line.charAt(0);

else if(line.matches("[0-9]+"))
    int a=Integer.parseInt(line);

首先检查字符串是否包含字母或数字

if(line.matches("[a-zA-Z]+"))
    int a=(int)line.charAt(0);

else if(line.matches("[0-9]+"))
    int a=Integer.parseInt(line);

您可以将文本文件转换为字节数组,然后将此数组转换为int数组

public static void Do()
{

    try {
        InputStream in;
        in = new FileInputStream("a.txt");
        byte[] array = new byte[in.available()];
        in.read(array);
        int[] array2 = new int[array.length];
        for (int i = 0 ; i<array.length ; i++)
        {
            array2[i] = array[i];
            System.out.println(array2[i]+"");
        }

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}
publicstaticvoiddo()
{
试一试{
输入流输入;
in=新文件输入流(“a.txt”);
字节[]数组=新字节[in.available()];
in.read(数组);
int[]array2=新的int[array.length];

对于(int i=0;i您可以将文本文件转换为字节数组,然后将此数组转换为int数组

public static void Do()
{

    try {
        InputStream in;
        in = new FileInputStream("a.txt");
        byte[] array = new byte[in.available()];
        in.read(array);
        int[] array2 = new int[array.length];
        for (int i = 0 ; i<array.length ; i++)
        {
            array2[i] = array[i];
            System.out.println(array2[i]+"");
        }

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}
publicstaticvoiddo()
{
试一试{
输入流输入;
in=新文件输入流(“a.txt”);
字节[]数组=新字节[in.available()];
in.read(数组);
int[]array2=新的int[array.length];

对于(int i=0;i您必须从字符而非46中减去48。ASCII值为0时为48。您必须从字符而非46中减去48。ASCII值为0时为48。您希望将字符存储到哪种整数值?对应的ASCII或对其建立哈希?您希望将字符存储到哪种整数值?对应的ASCII还是针对它们构建哈希?