Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 为什么我得到变量未初始化错误?_Java_String_Replace_Java.util.scanner - Fatal编程技术网

Java 为什么我得到变量未初始化错误?

Java 为什么我得到变量未初始化错误?,java,string,replace,java.util.scanner,Java,String,Replace,Java.util.scanner,我正在尝试将字符串中的所有字符转换为二维字符数组。详情如下: 我的代码: import java.util.*; 公共班机 { 公共静态void main(字符串[]args){ //System.out.println(“你好世界”); 扫描仪sc=新的扫描仪(System.in); int n,l=0;//如您所见,n已初始化 字符串x=“”; 字符[][]arr1=新字符[10][10]; if(sc.hasnetint()) n=sc.nextInt(); 对于(int i=0;i您只能

我正在尝试将字符串中的所有字符转换为二维字符数组。详情如下:

我的代码:

import java.util.*;
公共班机
{
公共静态void main(字符串[]args){
//System.out.println(“你好世界”);
扫描仪sc=新的扫描仪(System.in);
int n,l=0;//如您所见,n已初始化
字符串x=“”;
字符[][]arr1=新字符[10][10];
if(sc.hasnetint())
n=sc.nextInt();

对于(int i=0;i您只能将
char
替换为
char
,或将
CharSequence
替换为
CharSequence
(因为这些是为
String\replace
定义的唯一重载),而不能将
char
替换为
String
。将第一个参数转换为
String
(这是一个
CharSequence
)带有
字符串。valueOf
将解决此问题

ar[j] = ar[j].replace(String.valueOf(ar[i].charAt(k)), "");

只能将
char
替换为
char
,或将
CharSequence
替换为
CharSequence
(因为这些是为
String#replace
定义的唯一重载),而不能将
char
替换为
String
。将第一个参数转换为
String
(这是一个
CharSequence
)带有
字符串。valueOf
将解决此问题

ar[j] = ar[j].replace(String.valueOf(ar[i].charAt(k)), "");

如果允许您使用Java 8流API,则方法
simplify
可能呈现如下:

  • 使用Stream
    reduce
    操作连接输入数组中的字符串
  • 使用带有regexp的String
    replaceAll
    方法将以前检测到的所有字符替换为空文本:
测试:

System.out.println(simplify("abcdef", "fghij"));
System.out.println(simplify("abcdef", "fghij", " jklmn"));
输出


如果允许您使用Java 8流API,则方法
simplify
可能呈现如下:

  • 使用Stream
    reduce
    操作连接输入数组中的字符串
  • 使用带有regexp的String
    replaceAll
    方法将以前检测到的所有字符替换为空文本:
测试:

System.out.println(simplify("abcdef", "fghij"));
System.out.println(simplify("abcdef", "fghij", " jklmn"));
输出


您的输入循环首先被中断。它读取两行,然后下次循环时,将覆盖其中的第二行。@User-Upvotedon'tsayThanks-huh…true。我的评论将很快自毁。您的输入循环一开始被中断。它读取两行,然后下次在循环中覆盖第二行。@User-Upvotedon'tsayThanks-huh…true。我的注释很快将自毁。我遵循了您的解决方案,但现在我得到以下错误:
线程“main”中的异常java.util.Scanner.throwFor(Scanner.java:862)java.util.Scanner.next(Scanner.java:1485)java.util.Scanner.nextInt(Scanner.java:2117)java.util.Scanner.nextInt(Scanner.java:2076)Main.Main(Main.java:10)java.util.Scanner.Scanner
@Abhishek导致此问题的输入是什么?@Abhishek不是第10行
N=sc.nextInt();
?我遵循了您的解决方案,但现在我得到了以下错误:
java.util.Scanner.throwFor(Scanner.java:862)java.util.Scanner.next(Scanner.java:1485)的线程“main”java.util.NoSuchElementException中的异常在java.util.Scanner.nextInt(Scanner.java:2117)在java.util.Scanner.nextInt(Scanner.java:2076)在Main.Main(Main.java:10)
@Abhishek导致此问题的输入是什么?@Abhishek不是第10行
N=sc.nextInt();
System.out.println(simplify("abcdef", "fghij"));
System.out.println(simplify("abcdef", "fghij", " jklmn"));
abcdefghij
abcdefghij klmn