我如何阅读和存储reattempts?

时间:2017-04-19 17:32:07

标签: java string line

public class ReadTemps {

    public static void main(String[] args) throws IOException {
    // TODO code application logic here

    // // read KeyWestTemp.txt

    // create token1
    String token1 = "";

将鼠标悬停在组件1上更改样式

3 个答案:

答案 0 :(得分:0)

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class ReadTemps{

    public static void main(String[] args) throws IOException {
        //taking the word to search from keyboard
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Enter the word you want to search: ");
        String input = keyboard.nextLine();

        //counter for calculating how many times word wrote in line
        int counter = 0;
        //counter to find which line we are searching
        int counterLine = 1;

        // // read KeyWestTemp.txt

        // create token1
        String token1 = "";

        // for-each loop for calculating heat index of May - October

        // create Scanner inFile1
        Scanner inFile1 = new Scanner(new File("C:\\KeyWestTemp.txt"));

        // Original answer used LinkedList, but probably preferable to use
        // ArrayList in most cases
        // List<String> temps = new LinkedList<String>();
        ArrayList<String> temps = new ArrayList<String>();

        // while loop
        while (inFile1.hasNext()) {
            // find next line
            token1 = inFile1.nextLine();
            //removing whitespeaces
            token1.replaceAll("\\s+","");
            //taking all the letters as String
            for(int i = 0; i < token1.length(); i++) {
                char c = token1.charAt(i);
                String s = "" + c;
                temps.add(s);
            }
            //adding a point to find line' end
            temps.add("line");
        }
        inFile1.close();

        String[] tempsArray = temps.toArray(new String[0]);

        //searching on array to find first letter of word
        for (int i = 0; i < tempsArray.length; i++) {
            String s = temps.get(i);
            //if its the end of line time to print
            if(s.equals("line")) {
                System.out.println("Line" + counterLine + " : " + counter + " occurrence ");
                counterLine++;
                counter = 0;
            }
            //if the first letter found need to search rest of the letters
            if(s.equalsIgnoreCase("" + input.charAt(0))) {
                s = "";
                try {
                    for(int j = i; j < i + input.length(); j++) {
                        String comp = temps.get(j);
                        if(comp.equalsIgnoreCase("" + input.charAt(j-i)))
                            s = s + comp;
                    }
                } catch (IndexOutOfBoundsException e) {

                }
                //checks if found the word
                if(s.equalsIgnoreCase(input))
                    counter++;
            }
        }
    }
}

这是我通过char搜索char想要的String的代码。

答案 1 :(得分:0)

使用inFile1.nextLine(),而不是使用while (inFile1.hasNext()) { temps.add(inFile1.nextLine()); } ,而不必使用令牌字符串来浪费时间。

#include "StdAfx.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <fftw3.h>
#include <iostream>
#include <cmath>
#include <fstream>

using namespace std;

int main()
{
int i;
const int N=550;//Number of points acquired inside the window
double Fs=200;//sampling frequency
double dF=Fs/N;
double  T=1/Fs;//sample time 
double f=50;//frequency
double *in;
fftw_complex *out;
double t[N];//time vector 
double ff[N];
fftw_plan plan_forward;
in = (double*) fftw_malloc(sizeof(double) * N);
out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
for (int i=0; i<= N;i++) 
{
t[i]=i*T;
double M_PI=3.14159265359;
in[i] =0.7 *sin(2*M_PI*f*t[i]);// generate sine waveform
double multiplier = 0.5 * (1 - cos(2*M_PI*i/(N-1)));//Hanning Window
in[i] = multiplier * in[i];
}
for (int i=0; i<= ((N/2)-1);i++){
ff[i]=Fs*i/N;}
plan_forward = fftw_plan_dft_r2c_1d ( N, in, out, FFTW_ESTIMATE );
fftw_execute ( plan_forward );
double v[N];
for (int i = 0; i<= ((N/2)-1); i++){
v[i]=(20*log(sqrt(out[i][0]*out[i][0]+ out[i][1]*out[i][1])))/N;  //Here   I have calculated the y axis of the spectrum in dB
}
fstream fichero;
fichero.open("example2.txt",fstream::out);//fichero.open("example2.txt");
fichero << "plot '-' using 1:2" << std::endl;//fichero << "plot '-' using 1:2" << endl;
for(i = 0;i< ((N/2)-1); i++){ 
fichero << ff[i]<< " " << v[i]<< std::endl;
}
fichero.close();
fftw_destroy_plan (plan_forward);
fftw_free (in);
fftw_free (out);
return 0;
}

答案 2 :(得分:-2)

使用BUFFERED READER,它逐行读取

try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
    String fullLine;
    while ((line = br.readLine()) != null) {
    }
}