[Java/VB]如何用Java写出Visual Basic中的Mid()函数从而进行简捷的字符串处理

目录

一、何为Mid()函数?

二、如何在Java中自定义Mid()函数?

三、Mid()函数在Java中的使用实例?


一、何为Mid()函数?

Mid()函数在VB中具体用法如下:

Dim a As String '定义a变量为字符串类型

Dim b As String '定义b变量为字符串类型

a = "abcdefg" '给变量a赋值为"abcdefg"

b = Mid(a,3,4) '给变量b赋值为字符串a从第三位开始取连续四位的部分("cdef")

Print b '输出b变量(结果为"cdef")

借助Mid函数,我们可以十分简捷地对字符串进行处理,但是Java语言中并没有Mid函数()供使用,这也显示出写这篇文章的目的——在Java中通过自定义Mid()函数为简捷的字符串处理提供便利。


二、如何在Java中自定义Mid()函数?

具体代码如下:

public static String[]saveString(String str) {
    return str.split("");//把字符串通过split()函数存入数组
}

public static String Mid(String str,int i,int j) {
    String tmp = "";//初始化tmp变量
    str=str.replace(" ","$");//在调用saveString中的split()函数前把空格转换成"$",以防split()计数错误
    for (int t = i - 1; t <= i+j - 2; t++) {
        tmp = tmp + savestring(str)[t];//tmp变量字符串拼接
    }
    tmp=tmp.replace("$"," ");//把"$"重新替换为空格,以与原字符串内容保持一致
    return tmp;//输出tmp变量
}

核心在于利用split()函数读取并暂时储存原字符串各位信息,并模拟Mid()函数进行输出(仅为未接触过substring()函数的Java小白提供一种思路)。


三、Mid()函数在Java中的使用实例?

下图的程序作用:输入任意两个不相等字母,使得程序正序输出这两个字母之间(含边界)的字符串(输入"c""f"则输出"cdef";输入"g""b"则输出"bcdefg");两次输入同一个字母则输出该字母(输入"n""n"则输出"n")。

import java.util.Scanner;


public class Main {

    public static String[] savestring(String str) {
        return str.split("");
    }

    public static String Mid(String str, int i, int j) {
        String tmp = "";
        str = str.replace(" ", "$");
        for (int t = i - 1; t <= i + j - 2; t++) {
            tmp = tmp + savestring(str)[t];
        }
        tmp = tmp.replace("$", " ");
        return tmp;
    }

    public static void main(String[] args) {
        String str = "abcdefghijklmnopqrstuvwxyz";
        Scanner scanner = new Scanner(System.in);
        String a = scanner.nextLine();
        String b = scanner.nextLine();
        int x = 0;
        int y = 0;
        int c = 0;
        int i;
        for (i = 1; i <= 26; i++) {
            if ((Mid(str, i, 1).equals(a) || (Mid(str, i, 1).equals(b))) && c == 0) {
                x = i;
                c = 1;
            }

            if ((Mid(str, i, 1).equals(a) || (Mid(str, i, 1).equals(b))) && c == 1) {
                y = i;
            }
        }
        System.out.println(Mid(str, x, y - x + 1));
    }
}

总结:通过上述方法在Java中自定义Mid()函数能为简捷的字符串处理提供便利,自定义Mid()函数对于有VB学习经历并且入坑Java字符串处理的小伙伴来说是一种非常好的方法。

你可能感兴趣的:(Java,java,idea)