/**
* 反转字符串
* eg:"abc" => "cba"
* @param str
*/
static void reverseString(String str) {
// 目标字符串转换为字符数组
char[] charArray = str.toCharArray();
// 获取转换后的字符数组长度
int charLength = charArray.length;
char char_temp;// 临时字符变量
// 反转后的字符串
String newStr;
// 循环反转字符
for (int i = 0; i < charLength / 2; i++) {
// 将索引[i]元素的值赋值临时字符
char_temp = charArray[i];
// 索引[charLength - 1 - i]元素的值赋值索引[i]
charArray[i] = charArray[charLength - 1 - i];
// 临时字符赋值索引[charLength - 1 - i]元素
charArray[charLength - 1 - i] = char_temp;
}
// 获取反转后的字符串
newStr = String.valueOf(charArray);
// CSharp:newStr = new string(charArray);
// js:newStr = str.split("").reverse().join("");
System.out.println(newStr);
}
static void reverseString2(String str) {
int length = str.length();
StringBuilder sb = new StringBuilder(length);
length--;
for (int i = length; i >= 0; i--) {
sb.append(str.charAt(i));
}
System.out.println(sb.toString());
}
/**
* 两字符串求最长公共字符串
*
* @param a
* @param b
*/
static void compareString(String a, String b) {
int beginIndex = 0;
int endIndex = 0;
int maxLength = 0;
String shortString = null;
String longString = null;
if (a.length() > b.length()) {
shortString = b;
longString = a;
} else {
shortString = a;
longString = b;
}
String splitString = null;
for (int i = 0; i <= shortString.length(); i++) {
for (int j = i + 1; j <= shortString.length(); j++) {
splitString = shortString.substring(i, j);
if (longString.indexOf(splitString) > -1) {
if (splitString.length() > maxLength) {
maxLength = splitString.length();
beginIndex = i;
endIndex = j;
}
}
}
}
System.out.println(String.format("The MaxLength:%d", maxLength));
System.out.println(String.format("The BeginIndex:%d", beginIndex));
System.out.println(String.format("The EndIndex:%d", endIndex));
System.out.println(String.format("The MaxString:%s",
a.substring(beginIndex, endIndex)));
}
/*
* 判断回文数
*/
static void isPalindrome(String str) {
boolean sign = true;
int length = str.length();
int start = 0;
int end = 0;
if (length == 1)
sign = false;
for (int i = 0; i < length / 2; i++) {
start = str.charAt(i);
end = str.charAt(length - i - 1);
if ((start ^ end) != 0)
sign = false;
// return
}
System.out.println(String.format("isPalindrome: %s", sign));
}
/*
* 判断某一字符串是否与另一字符串相同
*/
static void isAnagrams(String a, String b) {
int aLength = a.length();
int bLength = b.length();
int aChar = 0;
int bChar = 0;
boolean sign = true;
int result = 0;
if (aLength != bLength)
sign = false;
// return
for (int i = 0; i < aLength; i++) {
aChar = a.charAt(i);
bChar = b.charAt(i);
result ^= aChar ^ bChar;
}
sign = result == 0;
System.out.println(String.format("isAnagrams: %s", sign));
}
/*
* 截取中英文混合的字符串
*/
static void subString(String str, int maxLen) {
int len = 0;
char cha = '0';
StringBuilder sb = new StringBuilder(maxLen);
if (str == null || str.isEmpty())
return;
try {
for (int i = 0; i < str.length(); i++) {
cha = str.charAt(i);
len += String.valueOf(cha).getBytes("GBK").length;
if (len > maxLen)
break;
sb.append(cha);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(sb.toString());
}
/*
* 汉字九九乘法表
*/
static void multiplicationTable() {
char[] chars = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十' };
int result = 0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
result = i * j;
if (String.valueOf(result).length() == 1) {
System.out.print(String.format(" %s×%s=%s ", chars[i],
chars[j], chars[result]));
} else {
if (result % 10 == 0) {
System.out.print(String.format(" %s×%s=%s%s ",
chars[i], chars[j], chars[(result / 10)],
chars[10]));
} else {
System.out.print(String.format(" %s×%s=%s%s%s ",
chars[i], chars[j], chars[(result / 10)],
chars[10], chars[(result % 10)]));
}
}
}
System.out.println();
}
}
/*
* 模拟手算加法实现大数字计算
*/
static String addString(String a, String b) {
// 判断是否为null
if (a == null || b == null)
return null;
String _a = a.trim();
String _b = b.trim();
// 判断是否为空
if (_a.isEmpty() && _b.isEmpty())
return null;
// 判断是否为0
if (_a.equals("0"))
return _b;
if (_b.equals("0"))
return _a;
// 判断是否为数字
if (!(StringUtils.isNumber(a) && StringUtils.isNumber(b)))
return null;
// 不足位补零
if (_a.length() > _b.length()) {
String temp = _a;
_a = _b;
_b = temp;
}
_a = StringUtils.addZeroToFirst(_a, _b.length());
// 定义返回值变量
StringBuilder result = new StringBuilder(_a.length());
// 循环模拟进位相加
int sum = 0;
int temp = 0;
int num1 = 0;
int num2 = 0;
for (int i = _a.length() - 1; i >= 0; i--) {
num1 = _a.charAt(i) - '0';
num2 = _b.charAt(i) - '0';
sum = num1 + num2 + temp;
result.append(sum % 10);
temp = sum / 10;
}
// 反转字符串
result.reverse();
// 判断最高位相加的和
if (temp != 0)
result.insert(0, temp);
return result.toString();
}
分享到:
相关推荐
2. **类库**:J2SE提供了一系列丰富的类库,如`java.lang`、`java.util`、`java.io`等,它们涵盖了字符串处理、集合框架、输入/输出操作等方面。通过源代码,我们可以学习如何有效地利用这些类库来解决问题。 3. **...
本资源包是一套全面的J2SE(Java Standard Edition)基础教程,适合初学者深入学习Java编程。它包含了从基本语法到高级特性的多个主题,帮助初学者逐步掌握Java编程的核心知识。 1. **第二章 Java语法基础**:这...
《J2SE基础全套资料》是一份全面涵盖Java标准版(J2SE)基础知识的资源集合,适合初学者和有经验的开发者进行深入学习。这份资料包括了集合、线程、网络、图形用户界面(GUI)、数组、字符串等多个关键主题,旨在...
在Java编程语言中,字符串是非常基础且重要的概念。`String`类是Java的标准库中用于处理和创建字符串的类,它专门设计用于处理Unicode字符序列。字符串在Java中被视为不可变对象,这意味着一旦创建了一个`String`...
例如,`List<String>`表示一个存储字符串的列表。 以上就是J2SE基础复习的主要知识点概述。通过深入理解这些概念,可以更好地掌握Java语言的核心要素,并为进一步学习更高级的主题打下坚实的基础。
本篇文章将深入探讨Java复习中关于J2SE的基础知识,特别是字符串处理相关的概念。 字符串在Java中扮演着至关重要的角色。Java提供了三种主要的字符串类:String、StringBuffer和StringBuilder。理解它们之间的区别...
Java J2SE基础知识是Java开发的核心,涵盖了类定义、函数、对象创建、关键字、异常处理、导入语句、包管理、接口以及数组等多个方面。以下是对这些知识点的详细阐述: 1. 类定义:在Java中,类是面向对象编程的基本...
在J2SE 7中,switch语句开始支持字符串作为表达式,这在处理枚举类型或常量时非常有用。 七、二进制字面量与下划线分隔符 1. 二进制字面量:可以用`0b`或`0B`前缀表示二进制数字,如`int num = 0b1010;` 2. ...
为了在Java开发者岗位上取得成功,掌握扎实的J2SE(Java Standard Edition)基础知识至关重要。本资料集合了多个来源的Java面试题,涵盖了广泛的知识点,旨在帮助求职者充分准备面试。 一、Java基础 1. 类与对象:...
字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串(比如对图片文件的操作就只能用字节流) 3-5.一个字符可以是1个字节,也可以是2个或多个字节 一个字节就是8个位,也就是对同一数据源...
5. **字符串处理**:Java中的String类是不可变的,了解其常用方法,如substring、concat、indexOf等,以及StringBuilder和StringBuffer用于动态构建字符串。 6. **输入/输出流**:学习I/O流的概念,包括文件读写、...
- **StringBuilder 和 StringBuffer**:可变字符串,适合在循环中进行字符串操作。 十二、流: - **I/O 流**:用于读写数据,分为字节流和字符流,有输入流和输出流之分。 - **缓冲流**:提高读写效率,如 ...
在描述中,由于连续重复的"j2se"字符串,没有提供具体的信息,所以我将从一般的角度来详细解释J2SE的相关知识点。 1. **Java虚拟机(JVM)**:J2SE的核心是Java虚拟机,它是Java程序的执行引擎。JVM负责解析.class...
1. **基础类库**:Java的基础类库包括集合框架(如ArrayList, HashMap等)、I/O流、网络编程、多线程、日期和时间处理以及字符串操作等。这些类库为开发者提供了强大的功能,使他们能够轻松地实现常见的编程任务。 ...
这些类库提供了基础数据类型、字符串处理、输入/输出、网络通信、集合框架等功能。API 文档对于开发者来说是必不可少的,因为它们列出了每个类、接口、方法和构造函数的详细说明,包括参数、返回值、异常和示例代码...
`String`类处理文本字符串,具有不可变性;`ArrayList`是动态数组,允许在任意位置插入和删除元素;`HashMap`则实现了键值对的存储,提供快速查找功能。理解这些类的使用方式和特性对于日常编程至关重要。 2. **...
- 尽管没有明确的`String`相关的文件,但在Java中,字符串处理是极其常见的,可能会在各个示例中都有所涉及,如字符串的创建、连接、比较、查找、替换等操作。 9. **测试与度量**: - `TestMetrics.java`可能是...
《J2SE 5.0 第06章:常用类1》主要涵盖了Java标准版5.0中的核心类库,特别是对字符串(String)类的深入探讨。这一章的学习旨在帮助开发者掌握Java中字符串处理的基本技巧和高级特性,提高代码效率和可读性。 在Java...
Java基础是所有Java开发者必备的知识体系,J2SE(Java 2 Platform, Standard Edition)是Java的核心部分,包含了用于开发和部署桌面应用的基本工具和API。以下是对J2SE面试中常见知识点的详细阐述: 一、基本规则:...