关于我复制掘金上的代码到idea上出现nbsp的原因
复制下面的代码到idea中不会出现nbsp
package com.java3;
import java.util.Arrays;
/**
* @author : JiangShan
* @version : 1.0
* @Date : Created in 17:19 2022/6/16
* bz :双色球,生成6个不同的随机数,存到数组
*/
public class Byspere {
public static void main(String[] args) {
//数组的长度是确定的
int[] arr = new int[6];
for (int i = 0, j, temp; i < arr.length; ) {
//先随机生成一个数,如果这个数符合条件,那么再把这个值给数组
temp = (int) (Math.random() * 34);
for (j = 0; j < i; j++) {
//如果相同,则会break,且不会满足下面的if条件,会从新生成随机数
if (temp == arr[j]) {
break;
}
}
//只有全部不同,才会执行到j==i,
if (j == i) {
//当j==i时,说明不重复,把这个数放在数组中,此时i才能自加
arr[i] = temp;
i++;
}
}
//输出数组
Arrays.sort(arr);
for (int i : arr) {
System.out.println(i);
}
}
}
复制下面的代码到idea会出现乱码nbsp
package com.java4;
import java.util.Scanner;
/**
* @author : Mr.Shan
* @version : 1.0
* @Date : Created in 9:11 2022/6/18
* bz :
* 5、【附加】向数组中添加非0数字:循环接受用户输入非0数字,并添加到数组中,重复元素不可以添加,具体要求如下:
* 4)在main方法中创建长度为10的数组,并全部初始化为0。
* 5)main方法中接受用户从键盘输入一个数字
* a)如果是0,则提示错误并重新输入;
* b)如果不是0,则调用自定义方法find(),查找该数在数组中是否存在;
* i.如果存在,则提示该数已存在,不可以向数组中插入,然后询问用户是否继续输入下一个数
* ii.如果不存在,则调用自定义方法insert(),向数组中添加此数,返回添加的位置,添加成功询问用户是否继续输入下一个元素,直到用户不想再输入或者数组已满,则停止循环
* 6)main方法中输出添加结束之后的数组
* 7)int find(int arr[],int num):用于查找num在arr数组中是否存在,如果存在,返回该数在数组中的位置,若不存在,则返回10(二分法查找)
* 8)int insert(int arr,int num): 用于向arr数组中添加num元素,在arr数组中查找第一个为0的元素,
* 将num的值添加到该位置,并返回添加成功之后的位置,如果找不到为0的数字,则返回10,代表数组已满,不可以再插入。
*/
public class arrDemo {
public static void main(String[] args) {
int c = 0, d = 0; //
int[] arr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
Scanner scanner = new Scanner(System.in);
int num=0;
a: for (int i = 0; i <arr.length ; i++) {
while (true) { //输入非0的数,第一个数很难处理!!!!!!
System.out.println("请输入一个数:");
num = scanner.nextInt();
if (num == 0) {
System.out.println("重新输入:");
} else {
break;
}
}
c = find(arr, num);
if (c == 10) {
System.out.println("该数在数组中不存在");
d = insert(arr, num);
System.out.println("添加成功,是否继续添加y/n");
String s = scanner.next();
if (s.equals("n")) {
break a; //打断大循环
}
} else {
System.out.println("该数在数组中存在,且索引为" + c);
i--; //不加这句话,重复多少次,末尾就多几个0
System.out.println("是否继续添加y/n");
String s = scanner.next();
if (s.equals("n")) {
break a; //打断大循环
}
}
}
// ======================输出结果===================
System.out.println("==================");
for (int j = 0; j < arr.length; j++) {
System.out.println(arr[j] + " ");
}
}
//=============================================================
//find方法-顺序查找
// 用于查找num在arr数组中是否存在,如果存在,返回该数在数组中的位置,若不存在,则返回10
public static int find(int arr[], int num) {
int index = 10;
for (int i = 0; i < arr.length; i++) { //顺序查找
if (arr[i] == num) {
index = i;
break;
}
}
return index;
}
//================================================================此路不通
//find二分法查找
// public static int findTwo(int arr[],int num){
// int index=10;
//
// int start = 0;
// int end = arr.length - 1;
// while (start <= end) {
// int mid = (start + end) / 2;
// if (num > arr[mid]) {
// start = mid + 1;
// } else if (num < arr[mid]) {
// end = mid - 1;
// }else {
// return mid;
// }
//
// }
// return index;
// }
//==========================================================
// insert方法
// 用于向arr数组中添加num元素,在arr数组中查找第一个为0的元素,
// 将num的值添加到该位置,并返回添加成功之后的位置,如果找不到为0的数字,则返回10,代表数组已满,不可以再插入。
public static int insert(int arr[], int num) {
int index2 = 10;
for (int i = 0; i < arr.length; i++) { //顺序查找
if (arr[i] == 0) {
index2 = i + 1;
arr[i] = num;
break;
}
}
return index2;
}
}
为什么会出现这种现象呢?
众所周知,typora之所以成为万千程序员的写作利器,是因为他的所见即所得。我写的代码一复制就乱码也和typora的所见即所得有关。为了方便,我经常在Typora写完文章,简单排版后,在非源代码页面直接复制到掘金的文档编辑器之中。因此,一些不必要的空格和编程的行号也被复制,所以我再将发布的内容粘贴到idea会出现nbsp。希望大家以我为鉴,在复制排版后的md文档时,一定要先点击Ctrl+/
切换到md源代码,再复制粘贴。这样对大家都好!!!