22.2.26百俊20114号


質問する
import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String input = sc.nextLine();
		
		int n = Integer.parseInt(input.split(" ")[0]);
		int h = Integer.parseInt(input.split(" ")[1]);
		int w = Integer.parseInt(input.split(" ")[2]);
		
		String[] arr = new String[h];
		int cnt = 0;
		char[] arr_char = new char[n];
		
		for (int i = 0; i < arr_char.length; i++) {
			arr_char[i] = '1';
		}
		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.next();
		}
		for (int i = 0; i < h; i++) {
			for (int j = 0; j < n*w; j+=w) {
				
				for (int k = 0; k < w; k++) {
					if(arr[i].substring(j, j+w).charAt(k)!='?') {
						arr_char[j/w] = arr[i].substring(j, j+w).charAt(k);
						break;
					} else {
						cnt++;
					}
					
					if(cnt==w) {
						cnt = 0;
						if(arr_char[j/w]=='1') {
							arr_char[j/w] = '?';
						}
						
						
					}
				}
				
			}
			
		}
		System.out.println(new String(arr_char));
		
	}
}
メソッド->正解を含むchar[]を定義し、入力した文字列をw順にカットした文字列「?」非文字をchar[]に含める
'?'もし出てきただけだったら「?」ここでif文の正しい文字はchar[]に含まれ、次の入力に含まれますか?一時的に仏の足を抱く.
特別事項->char[]を「1」に初期化していない場合はif文では比較できませんが、char[]のデフォルト値は「0」と表示され、印刷されると空白文字が現れるので、空白文字でif文を焼いてしまい、結果的にif文を正確に焼いていません.これはもう一度聞かなければなりません.
22.2.27追加->char配列のデフォルト値は「0」ではなく整数0です.したがって、1に初期化せずにif(arr char[j/w]=0)で比較すれば、正常に比較できます!また、空白文字とアスキーコード0は文字です!