🤖
Dart で ISBN13をISBN10に変換
String isbn10(String isbn13) {
isbn13 = isbn13.replaceFirst('-', '');
String isbn = isbn13.substring(3, 12);
var sum = 0;
for (int i = 0; i <= isbn13.length - 1; i++) {
sum += int.parse(isbn13[i]) * (10 - i);
}
sum = 11 - (sum % 11);
String sum_string;
if (sum == 10) {
sum_string = 'X';
} else if (sum == 11) {
sum_string = '0';
} else {
sum_string = sum.toString();
}
String ans = "${isbn}${sum_string}";
return ans;
}
参考
Discussion