Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 如何使用stringbuilder保存已删除的字符_Java_Stringbuffer_Except - Fatal编程技术网

Java 如何使用stringbuilder保存已删除的字符

Java 如何使用stringbuilder保存已删除的字符,java,stringbuffer,except,Java,Stringbuffer,Except,是否可以保存使用Stringbuffer删除的字符,或删除除“i”索引上的字符以外的所有字符 这是我从txt文件中输入的内容: 3;8;4;5;3;2 3 4 5 1 2 3 9;8;3;2;3;4 9 8 9 7 8 1 我需要总结每一行,看看哪一行是偶数最多的,所以我决定读一整行,用空格分隔字符,然后在字符串生成器的帮助下删除除“I”位置的一个字符以外的所有字符,最后保存在二维数组中。 也许你会有更好的主意怎么做 我的代码: package Operacje_na_plikach; im

是否可以保存使用Stringbuffer删除的字符,或删除除“i”索引上的字符以外的所有字符 这是我从txt文件中输入的内容:

3;8;4;5;3;2
3 4 5 1 2 3
9;8;3;2;3;4
9 8 9 7 8 1
我需要总结每一行,看看哪一行是偶数最多的,所以我决定读一整行,用空格分隔字符,然后在字符串生成器的帮助下删除除“I”位置的一个字符以外的所有字符,最后保存在二维数组中。 也许你会有更好的主意怎么做

我的代码:

package Operacje_na_plikach;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;

public class Zad3 {
    /*
    Plik tekstowy ‘dane.txt’ ma postać:
3;8;4;5;3;2
3 4 5 1 2 3
9;8;3;2;3;4
9 8 9 7 8 1
Pobierz z pliku tekstowego kolejne wiersze liczb i wypisz na ekranie numer wiersza, w którym występuje najwięcej elementów parzystych.
     */
    public static String[][] odczyt(String nazwa)
    {
        String[][] arr = new String[1][1];
        int[] suma = new int[1];
        int max = -1;
        int wiersz=-1;
        String text = null;
        try {
            FileReader reader = new FileReader(nazwa);
            Scanner sc = new Scanner(reader);
            while(sc.hasNextLine())
            {
                arr=Arrays.copyOf(arr,arr.length+1);
                text = sc.nextLine().replaceAll(";"," ");
                int[] temp= new int[text.length()];
                StringBuilder sb = new StringBuilder(text);
                for (int i = 0; i <temp.length ; i++) {
                 temp[i]=sb.delete();
                }
                for (int i = 0; i < ; i++) {
                    for (int j = 0; j < ; j++) {
                        arr[i][j] = text
                    }
                }
            }

            /* while (sc.hasNextLine())
            {
                arr=Arrays.copyOf(arr,arr.length+1);
                text = sc.nextLine().replaceAll("[;]"," ");

                for (int i = 0; i <arr.length ; i++) {
                    while(text!=null)
                    {
                        int temp = Integer.parseInt(text);
                    }
                    for (int j = 0; j <arr.length ; j++) {

                        arr[i][j] = text.nextInt();
                        if(arr[i][j]%2==0)
                        {
                            suma[i]+=arr[i][j];
                            if(suma[i]>max)
                            {
                                max = suma[i];
                                wiersz=i;
                            }
                        }
                    }
                }
            }
            System.out.println("Najwiecej liczb parzystych jest w wierszu: " + wiersz);
*/



            sc.close();
            reader.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return arr;
    }

    public static void main(String[] args) {
        int[][] arr = odczyt("dane.txt");
    }
}
packageoperacje_na_plikach;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.array;
导入java.util.Scanner;
公共类Zad3{
/*
Plik tekstowy'dane.txt'ma postać:
3;8;4;5;3;2
3 4 5 1 2 3
9;8;3;2;3;4
9 8 9 7 8 1
波比尔兹·普利库·特克斯托伊戈·维尔泽·利茨比·维皮兹·纳埃克兰尼·维尔萨号,与帕济施蒂奇号元素相同。
*/
公共静态字符串[][]odczyt(字符串nazwa)
{
字符串[][]arr=新字符串[1][1];
int[]suma=新int[1];
int max=-1;
int-wiersz=-1;
字符串文本=空;
试一试{
FileReader=新的FileReader(nazwa);
扫描仪sc=新扫描仪(读卡器);
while(sc.hasNextLine())
{
arr=Arrays.copyOf(arr,arr.length+1);
text=sc.nextLine().replaceAll(“;”,”);
int[]temp=new int[text.length()];
StringBuilder sb=新的StringBuilder(文本);

对于(int i=0;i我认为您可能过于复杂了。您可以对文件的行进行流式处理,解析它们,并将它们映射到偶数的总和。然后您可以遍历总和数组,找到最大元素的索引(也可以使用流式处理,只是为了好玩):


我认为您可能过于复杂了。您可以流式处理文件的行,解析它们,并将它们映射到偶数的总和。然后您可以遍历总和数组,找到最大元素的索引(也可以使用流进行索引,只是为了好玩):


为了澄清-你希望这个文件的输出是什么?行数,其中偶数之和是最大的。为了澄清-你希望这个文件的输出是什么?行数,其中偶数之和是最大的。谢谢,但我按照你看到的方式做了,因为你的解决方案超出了我的能力。我正在学习我还没有学会java,我想我还远没有像你刚才那样解决问题。我的水平是:面向对象编程入门:D,但非常感谢!谢谢,但我是按照你看到的方式做的,因为你的解决方案超出了我的能力。我还在学java,我想我远没有像你刚才那样解决问题。我的水平是:面向对象编程入门面向ct的编程:D,但非常感谢!
long[] sums =
    Files.lines(Paths.get("dane.txt"))
         .mapToLong(s -> Arrays.stream(s.split("[ ;]"))
                               .mapToInt(Integer::parseInt)
                               .filter(i -> i % 2 == 0)
                               .sum())
         .toArray();

int lineNum =
    IntStream.range(0, sums.length)
             .boxed()
             .max(Comparator.comparingLong(i -> sums[i]))
             .get();