`
liuyes
  • 浏览: 53079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己实现java的String.compareTo函数

阅读更多
package other;

import org.junit.Test;

public class OtherTest {

	@Test
	public void toCompare(){
		System.out.println(this.compare("中国", "中国"));
		System.out.println("中国".compareTo("中国"));
	}
	/**
	 * 首先判断长度,用长度短的字符串长度做循环比较
	 * 循环中从左到右顺序取一个字符比较
	 * 如果大于,返回当前字符位置(正数),如果小于,返回当前字符位置(取负数),如果相等则比较下一个
	 * @author liuyes
	 * @param str1 比较的第一个字符串
	 * @param str2 比较的第二个字符串
	 * @return 返回比较的结果
	 */
	public int compare(String str1,String str2){
		int i=str1.length();
		int j=str2.length();
		if(i>j){
			for(int n=0;n<j;n++){
				if(str1.charAt(n)>str2.charAt(n)){
					System.out.println("111111");
					return n+1;
				} else if(str1.charAt(n)<str2.charAt(n)) {
					System.out.println("222222");
					return -(n+1);
				} else {
					continue;
				}
			}
			return j+1;
		} else if(i<j) {
			for(int n=0;n<i;n++){
				if(str1.charAt(n)>str2.charAt(n)){
					System.out.println("333333");
					return n+1;
				} else if(str1.charAt(n)<str2.charAt(n)) {
					System.out.println("444444");
					return -(n+1);
				} else {
					continue;
				}
			}
			return i+1;
		} else {
			for(int n=0;n<i;n++){
				if(str1.charAt(n)>str2.charAt(n)){
					System.out.println("555555");
					return n+1;
				} else if(str1.charAt(n)<str2.charAt(n)) {
					System.out.println("666666");
					return -(n+1);
				} else {
					continue;
				}
			}
			System.out.println("777777");
			return 0;
		}
	}

}


新手,不知有无问题,请大家指正,呵呵~~
0
0
分享到:
评论

相关推荐

    Java 面试宝典

    23、java 中实现多态的机制是什么? ......................................................................... 17 24、abstract class 和 interface 有什么区别? ...............................................

    java8集合源码-Java8Example:Java8示例

    java8集合源码#Java 8 - 概述 新的功能 Lambda 表达式 方法参考 默认方法 新工具 流API 日期时间 API 选修课 Nashorn,JavaScript 引擎 Java 7 Collections.sort(names, new Comparator&lt;String&gt;() { @Override ...

    java8stream源码-java8collections:Java8中流的基本介绍

    是函数式接口抽象方法的实现时,可以如下创建该函数式接口的实例。 例子 Comparator&lt; String &gt; comparator = ( String a, String b) - &gt; { return a . compareTo(b);}; beerNames . sort(compa

    Java jdk8版本8u231

    Oracle 官网提供的jdk8的安装包 jdk8增加了Lambda 表达式 : Collections.sort(names, (String a, String b) -&gt; { ...String converted = converter.convert("Java"); System.out.println(converted);

    java常用工具类的使用

    “工欲善其事,必先利其器”,在Java程序开发过程中,很多算法(比如:MD5加密算法)、很多数据结构(比如链表LinkedList)已经实现并且大多放在类库的java.util包中,程序员只需要了解各种工具的功能就可以直接调用...

    java8集合源码-playJava8:玩Java8

    java8集合源码玩Java8 Lambda 表达式 List&lt; String &gt; names = Arrays . asList( " peter " , " anna " , " mike " , " xenia " ); Collections . sort(names, ( String a, String b) - &gt; { return b . compareTo...

    Java面试宝典-经典

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    java面试题大全(2012版)

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    最新Java面试宝典pdf版

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    java字符串操作大全

    java字符串操作大全,适合初学者,浅显易懂 部JAVA字符串操作 2008-07-11 15:39:42| 分类: JAVA | 标签: |字号大中小 订阅 . JAVA字符串的方法 String a = "53c015"; //Integer.parseInt(s, radix) radix设置为...

    Java面试笔试资料大全

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    java面试宝典2012

    82、能不能自己写个类,也叫java.lang.String? 62 83. Java代码查错 63 二. 算法与编程 67 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    JAVA面试宝典2010

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    Java面试宝典2012新版

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    Java面试宝典2012版

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b....

Global site tag (gtag.js) - Google Analytics