String-Segmentierung, String-Kombination, das Gleiche in ungeordneten Zahlen finden (schriftliche Testfragen)

Inhaltsverzeichnis

1. Implementieren Sie die folgenden zwei Methoden

1) Teilen Sie die Zeichenfolge auf. Beispielsweise verwendet „ab&&…“ && als Trennzeichen, um die Zeichenfolgenkombination [„ab“, „2“,…] zu erhalten.

2) Realisieren Sie die Kombination von Zeichenfolgen, zum Beispiel ["ab", "2",...] durch das Trennzeichen "&&" und kombinieren Sie sie zu einer Zeichenfolge "ab&&2&&..."

2. 1000 Zufallszahlen, der Wertebereich ist [0,999]. Wenn es 2 identische Zahlen gibt, finden Sie diese bitte heraus


1. Implementieren Sie die folgenden zwei Methoden

Die grundlegenden Teilungs- und Kombinationsfunktionen der Sprache (z. B. String.split von Java, Explode und Implode von PHP) können nicht verwendet werden

        1) Teilen Sie die Zeichenfolge auf. Beispielsweise verwendet „ab&&…“ && als Trennzeichen, um die Zeichenfolgenkombination [„ab“, „2“,…] zu erhalten.

        2) Realisieren Sie die Kombination von Zeichenfolgen, zum Beispiel ["ab", "2",...] durch das Trennzeichen "&&" und kombinieren Sie sie zu einer Zeichenfolge "ab&&2&&..."

1) Teilen Sie die Zeichenfolge auf. Beispielsweise verwendet „ab&&…“ && als Trennzeichen, um die Zeichenfolgenkombination [„ab“, „2“,…] zu erhalten.

package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;

/*
	用indexOf()方法进行定位,然后用substring()进行截取
 */
public class SplitString {

	//分割字符串
	/**
	 * 字符串按分隔符分割方法
	 * @param str  需要被分割的字符串
	 * @param split  分隔符
	 * @return String[] 分割完成的字符串      
	 */
	public static String[] splitTest(String str,String split) {
		
		ArrayList<String> list = new ArrayList<String>();//存储分割好的字符串
		
		while(str.indexOf(split) !=-1) {//如果没有找到匹配的字符串则返回 -1
			list.add(str.substring(0,str.indexOf(split)));//截取下标从0开始,第一个分割符的下标 。范围[ , ) 
			str = str.substring(str.indexOf(split)+split.length()); //substring()一个参数,表示截掉前n个字符,得到后面的新字符。
		}
		
		if(str != "") {//如果分割到最后,字符串不等于空
			list.add(str);
		}
		
		
		String[] strArray = list.toArray(new String[list.size()]);//集合转成字符串
		
		return strArray;//返回数组
		
	}
	
	public static void main(String []args) {
		String[] strArrys = splitTest("1&&2&&3&&4&&5","&&");
		System.out.println(Arrays.toString(strArrys));
	}
}

2) Realisieren Sie die Kombination von Zeichenfolgen, zum Beispiel ["ab", "2",...] durch das Trennzeichen "&&" und kombinieren Sie sie zu einer Zeichenfolge "ab&&2&&..."

package test;


/*
 	字符串拼接
 */

public class StringSplit {
	
	/**
	 * 字符串拼接
	 * @param arr 需要进行拼接的集合
	 * @param split 分割符
	 * @return 字符串
	 */
	public static String getStringSplit(String[] arr,String split) {
		
		StringBuilder sb = new StringBuilder();//存储字符串
	
		int i = 0;
		for(;i<arr.length-1;i++) {
			sb.append(arr[i]);
			sb.append(split);
		}
		sb.append(arr[i]);//最后一个在外面加,因为末尾不需要加分隔符了
		
		return sb.toString();//转换成字符串
	}

	//测试
	public static void main(String[] args) {
		String[] arr = {"1","2","3","4","5"};
		String str = getStringSplit(arr,"&&");
		System.out.println(str);
	}
}

2. 1000 Zufallszahlen, der Wertebereich ist [0,999]. Wenn es 2 identische Zahlen gibt, finden Sie diese bitte heraus

package test;

import java.util.Arrays;



public class Select {
	
	/**
	 * 1000个无序数找相同
	 * @param arr
	 */
	public static void equalsInt(int[] arr) {
		//对数组进行排序
		Arrays.sort(arr);
		
		for(int i = 0;i<arr.length-1;i++) {
			if(arr[i] == arr[i+1]) {//相邻的数进行比较
				System.out.println("相同的数为:" + arr[i]);
				return;//如果只有一对相同的数,return就行,减少不必要的消耗。如果有多对,就去掉return。
			}
			
		}
		
	} 

	//简单测试
	public static void main(String[] args) {
		//录入测试数据
		int[] arr = new int[1000];
		for(int i = 0;i<1000;i++) {
			arr[i] = i;
		}
		arr[100] = 56;//写一个相同值进行测试,值不等于下标就行
		
		equalsInt(arr);
	}
}

Wenn Sie eine gute Strategie haben, klären Sie mich bitte auf.

Wenn es Fehler gibt, korrigieren Sie mich bitte.

Supongo que te gusta

Origin blog.csdn.net/m0_51315555/article/details/126638456
Recomendado
Clasificación