【问题标题】:Java: Parsing String array items into, int, double, or stringJava:将字符串数组项解析为 int、double 或 string
【发布时间】:2016-01-21 01:07:30
【问题描述】:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;


public class DataStructure {
 public static void main(String[] aArgs) {
     String [] fileContents=new String[6];
     File testFile = new File ("testFile.txt");

     try{
         Scanner testScanner = new Scanner(testFile);
         int i=0;
         while (i < fileContents.length){
             fileContents[i]=testScanner.nextLine();
         i++;
         }
         testScanner.close();
     }
 catch (FileNotFoundException e) {
      e.printStackTrace();
 }
     finally{
         System.out.println(Arrays.toString(fileContents)); 

     }
     }

 }

以上是我已经为我的程序准备的内容。我想要做的是将尝试部分中创建的字符串数组中的项目转换为特定的可用变量,int,double 等。我应该在创建字符串时解析字符串并废弃数组吗?我不确定如何继续解析字符串数组。任何帮助都会很棒...我对 java 很陌生...

【问题讨论】:

标签: java arrays string parsing


【解决方案1】:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;

public class DataStructure {
 public static void main(String[] aArgs) {
     String [] fileContents=new String[6];
     ArrayList<Integer> intList = new ArrayList<>();
     ArrayList<Double> doubList = new ArrayList<>();

     File testFile = new File ("testFile.txt");

     try{
         Scanner testScanner = new Scanner(testFile);
         int i=0;
         while (i < fileContents.length){
             fileContents[i]=testScanner.nextLine();
             i++;
         }
         testScanner.close();
     }
 catch (FileNotFoundException e) {
      e.printStackTrace();
 }
     finally{
         System.out.println(Arrays.toString(fileContents)); 
         for( int i = 0; i < fileContents.length; i++ ){
            if(fileContents[i].contains(".")){
                doubList.add(Double.parseDouble(fileContents[i]));
            }else{
                intList.add(Integer.parseInt(fileContents[i]));
            }
         }
         for(int i = 0; i < intList.size(); i++ ){
            System.out.println(intList.get(i));
         }
         System.out.println(" ");
         for(int i = 0; i < doubList.size(); i++ ){
            System.out.println(doubList.get(i));
         }
     }
     }

 }

由于双精度和浮点数实际上是相同的,只是其中一个能够保存更大的数据值,因此我将所有浮点数/双精度数作为双精度数,将整数作为整数。我测试了每个字符串以查看它是否包含“。”句点字符,如果有,我将它添加到我的双精度数组列表中,如果没有,我将它添加到我的整数数组列表中。

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多