Java String类练习题

题目:
1. 给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.
如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,12.字符串和子串均由用户输入

2.给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成
Java中随机数的生成:
java.util.Random r = new java.util.Random();
int a = r.nextInt(100): a 0-99的随机数

3.给定一个由数字组成的字符串,如:"1239586838923173478943890234092",统计
出每个数字出现的次数

答案如下:

package Chp10;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;

public class TestString2
{
	public static void Method_One()
	{

		Scanner s = new Scanner(System.in);
		System.out.println("请输入一个父串");
		String str = s.next();

		System.out.println("请输入一个子串");
		String str1 = s.next();

		int stat = 0;
		while (true)
		{
			int i = str.indexOf(str1,stat);
			if (i==-1)
			{
				break;
			}
			System.out.println(i);
			stat = i+str1.length();
		}

	}

	public static void Method_Two()
	{
		System.out.println("请输入一个长度");
		Scanner s = new Scanner(System.in);
		int n = s.nextInt();
		char[] cs = new char[n];

		Random random = new Random();
		for (int i = 0; i < n; i++)
		{
			int a = random.nextInt(62);
			if(a>=0 && a<=25)
			{
				a+=65;
			}
			else if (a>25 && a<=51)
			{
				// 97 - 26 = 71
				a+=71;
			}
			else
			{
				// 52-48 = 4
				a-=4;
			}
			cs[i] = (char)a;
		}
		System.out.println(cs);
	}

	public  static void  Method_Three()
	{
		Scanner scanner = new Scanner(System.in);
		String string = scanner.next();
		int[] c = new int[10];
		for (int i = 0; i < string.length(); i++)
		{
			char c1 = string.charAt(i); //48-57
			int a = c1-48;	// 类型转换
			c[a]++;
		}
		for (int i = 0; i < c.length; i++)
		{
			System.out.println(i+" 出现的次数: "+c[i]);
		}

		System.out.println("=========方法二==========");
		String s = "12548954231351486214894562";
		char[] ch = s.toCharArray();

		Map<Character, Integer> map = new HashMap<Character, Integer>();
		Set<Character> set = map.keySet();
		for (int i = 0; i < ch.length; i++)
		{
			if (set.contains(ch[i])) // 判断map中已经有的char值
			{
				map.put(ch[i], map.get(ch[i])+1);
			} else
			{
				map.put(ch[i], 1); // 第一次放入map中
			}
		}
		Set<Character> set2 = map.keySet();
		for (Character character : set2)
		{
			System.out.println(character+"=========="+map.get(character));
		}
	}

	public static void main(String[] args)
	{
		System.out.println("第一题如下:");
		Method_One();
		System.out.println("第二题如下:");
		Method_Two();
		System.out.println("第三题如下:");
		Method_Three();
	}
}

  

  

时间: 2024-10-06 00:29:32

Java String类练习题的相关文章

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

Java String类

JAVA String类[转] 1.String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”; 其实按照面向对象的标准语法,其格式应该为: String s = new String(“abc”); s = new String(“Java语言”); 只是按照面向对象的标准语法,在内存使用上存在比较大的浪费.例如String s = new String

JAVA String 类

java String类中的常用方法:public char charAt(int index)返回字符串中第index个字符:public int length()返回字符串的长度:public int indexOf(String str)返回字符串中第一次出现str的位置:public int indexOf(String str,int fromIndex)返回字符串从fromIndex开始第一次出现str的位置:public boolean equalsIgnoreCase(Strin

Java String类详解

Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final class String extends Object implements Serializable, Comparable<String>, CharSequence 类概述: Java程序中的所有字面值(string literals),即双引号括起的字符串,如"abc",都是作为String类的实例

Java 11 - Java String类

Java String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: String greeting = "Hello world!"; 在代码中遇到字符串常量时,这里的值是"Hello world!",编译器会使用该值创建一个String对象. 和其它对象一样,可以使用关键字和构造方法来创建String对象. String类有11种构造方法,这些方法提供不同

Java String类的常用方法

String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting original):构造一个original的副本.即:拷贝一个original. String(StringBuffer buffer):通过StringBuffer数组构造字符串对象. byte[] b = {'a','b','c','d','e','f','g','h','i','j'}; char[] c =

详解Java String类

转载自http://hxraid.iteye.com/blog/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却不是普通的类哦!!! [镜头1] String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world"); 问题是参数"Hello world"是什么东西

Java String类型值真的不可改变吗?

1.Java String 可以改变吗? 一直认为java 中String类型的值不能修改,主要是因为String是final的,而且里面没有设置值的set方法.但是可以通过反射机制改变值. 例1 public class Test { public static void main(String[] args) throws Exception { String s="0123456789"; System.out.println("改变前:s=" + s); F

java String类用法

一.String 首先我们要明确,String并不是基本数据类型,而是一个对象,并且是不可变的对象.查看源码就会发现String类为final型的(当然也不可被继承),而且通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象. 字符串为对象,那么在初始化之前,它的值为null,到这里就有必要提下"".null.new String()三者的区别.null 表示string还没有new ,也就是说对象的引用还没有创建,也没有分配内存空间