精华内容
下载资源
问答
  • java字符串转字符串数组Java String array is used to hold fixed number of Strings. String array is very common in simple java programs, specially among beginners to java and to test some specific ...

    java字符串转字符串数组

    Java String array is used to hold fixed number of Strings. String array is very common in simple java programs, specially among beginners to java and to test some specific scenarios. Even java main method argument is string array – public static void main(String[] args). So today we will look into different aspects of java string array with example programs.

    Java String数组用于保存固定数量的String。 字符串 数组简单的Java程序中非常常见,特别是在Java初学者和测试某些特定情况的初学者中。 甚至java main方法的参数也是字符串数组– public static void main(String[] args) 。 因此,今天我们将通过示例程序研究java字符串数组的不同方面。

    • Java String array is basically an array of objects.

      Java String数组基本上是对象的数组。
    • There are two ways to declare string array – declaration without size and declare with size.

      声明字符串数组的方法有两种:不声明大小和声明大小。
    • There are two ways to initialize string array – at the time of declaration, populating values after declaration.

      有两种初始化字符串数组的方法-在声明时,在声明后填充值。
    • We can do different kind of processing on string array such as iteration, sorting, searching etc.

      我们可以对字符串数组进行不同类型的处理,例如迭代,排序,搜索等。

    Let’s go over java string array example programs now.

    现在让我们来看一下Java字符串数组示例程序。

    Java字符串数组声明 (Java String Array Declaration)

    Below code snippet shows different ways for string array declaration in java.

    下面的代码片段显示了Java中字符串数组声明的不同方法。

    String[] strArray; //declare without size
    
    String[] strArray1 = new String[3]; //declare with size

    Note that we can also write string array as String strArray[] but above shows way is the standard and recommended way. Also in the above code, strArray is null whereas strArray1 value is [null, null, null].

    请注意,我们也可以将字符串数组编写为String strArray[]但以上所示的方法是标准和推荐的方法。 同样在上面的代码中, strArraynullstrArray1值为[null, null, null]

    Java字符串数组初始化 (Java String Array Initialization)

    Let’s look at different ways to initialize string array in java.

    让我们看看在Java中初始化字符串数组的不同方法。

    //inline initialization
    String[] strArray1 = new String[] {"A","B","C"};
    String[] strArray2 = {"A","B","C"}; 
    
    //initialization after declaration
    String[] strArray3 = new String[3];
    strArray3[0] = "A";
    strArray3[1] = "B";
    strArray3[2] = "C";

    All the three string arrays will have same values. However if you will call equals method on them, it will return false.

    三个字符串数组都将具有相同的值。 但是,如果您将对它们调用equals方法,它将返回false。

    System.out.println(strArray1.equals(strArray2)); // false
    System.out.println(Arrays.toString(strArray1).equals(Arrays.toString(strArray2)));// true

    The reason is that array are Objects and Object class implements equals() method like below.

    原因是数组是Objects,而Object类实现了equals()方法,如下所示。

    public boolean equals(Object obj) {
            return (this == obj);
        }

    Second statement is true because when converted to String, their values are same and String class equals() method implementation check for values. For more details, please check String class API documentation.

    第二条语句是正确的,因为当转换为String时,它们的值是相同的,并且String类equals()方法实现会检查值。 有关更多详细信息,请查看String类API文档。

    遍历Java字符串数组 (Iterating over java string array)

    We can iterate over string array using java for loop or java foreach loop.

    我们可以使用java for循环java foreach循环遍历字符串数组。

    String[] strArray2 = {"A","B","C"}; 
    for (int i = 0; i < strArray2.length; i++) {
    	System.out.print(strArray2[i]);
    }
    
    for (String str : strArray2) {
    	System.out.print(str);
    }

    在字符串数组中搜索字符串 (Search for a String in the String array)

    We can use for loop to search for an string in the array, below is a simple example for that.

    我们可以使用for循环在数组中搜索一个字符串,下面是一个简单的例子。

    package com.journaldev.stringarray;
    
    public class JavaStringArrayExample {
    
    	public static void main(String[] args) {
    		String[] strArray = { "A", "B", "C" };
    		
    		boolean found = false;
    		int index = 0;
    		String s = "B";
    		for (int i = 0; i < strArray.length; i++) {
    			if(s.equals(strArray[i])) {
    				index = i; found = true; break;
    			}
    		}
    		if(found)
    			System.out.println(s +" found at index "+index);
    		else
    			System.out.println(s +" not found in the array");
    		
    	}
    
    }

    Notice the use of break keyword to get out of the loop as soon as we found the string.

    注意,一旦找到字符串,就使用break关键字退出循环。

    Java字符串数组排序 (Java String Array Sorting)

    We can implement our own sorting algorithm, or we can use Arrays class sorting method.

    我们可以实现自己的排序算法,也可以使用Arrays类的排序方法。

    String[] vowels = {"a","i","u","e","o"};
    		
    System.out.println("Before sorting "+Arrays.toString(vowels));
    
    Arrays.sort(vowels);
    		
    System.out.println("After sorting "+Arrays.toString(vowels));

    Output of above code snippet will be:

    上面的代码片段的输出将是:

    Before sorting [a, i, u, e, o]
    After sorting [a, e, i, o, u]

    Note that String implements Comparable interface, so it works for natural sorting. Incase you want to sort by some other way, you can use Arrays.sort() overloaded method by passing a Comparator. Learn about these sorting techniques at Comparable and Comparator in java.

    请注意,String实现了Comparable接口,因此适用于自然排序。 如果要通过其他方式排序,则可以通过传递Comparator来使用Arrays.sort()重载方法。 在Java中的Comparable和Comparator中了解有关这些排序技术的信息。

    将字符串转换为字符串数组 (Convert String to String Array)

    We can convert String to string array using it’s split() method. It’s useful when you get a single string as input with values separated using delimiter character.

    我们可以使用它的split()方法将String转换为字符串数组。 当您获得单个字符串作为输入,并且使用定界符将值分隔开时,这很有用。

    String str = "a,e,i,o,u";
    String[] vowels = str.split(",");
    System.out.println(Arrays.toString(vowels)); //[a, e, i, o, u]

    将字符串数组转换为字符串 (Convert String Array to String)

    We can use Arrays.toString() method to convert String array to String. Note that array doesn’t implement toString() method, so if you will try to get it’s string representation then you will have to rely on Arrays class, or else write your own custom code.

    我们可以使用Arrays.toString()方法将String数组转换为String。 请注意,array不实现toString()方法,因此,如果您尝试获取它的字符串表示形式,则必须依赖Arrays类,或者编写自己的自定义代码。

    String[] vowels = { "a", "e", "i", "o", "u" };
    System.out.println(vowels);
    System.out.println(Arrays.toString(vowels));

    Output will be like below.

    输出将如下所示。

    [Ljava.lang.String;@3d04a311
    [a, e, i, o, u]

    The first output is because of Object class toString() implementation like below.

    第一个输出是由于如下所示的Object类toString()实现。

    public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }

    要列出的Java字符串数组 (Java String Array to List)

    We can get a list representation of string array using Arrays.toList() method. Note that this list is backed by the array and any structural modification will result in java.lang.UnsupportedOperationException.

    我们可以使用Arrays.toList()方法获得字符串数组的列表表示形式。 请注意,此列表由数组支持,任何结构修改都会导致java.lang.UnsupportedOperationException

    String[] vowels = { "a", "e", "i", "o", "u", "a", "o" };
    
    List<String> vowelsList = Arrays.asList(vowels);
    System.out.println("vowelsList = "+vowelsList);
    //vowelsList.add("x"); //java.lang.UnsupportedOperationException
    
    vowelsList.set(0, "x"); //allowed because no structural modification
    System.out.println("vowelsList = "+vowelsList);

    That’s all for java string array.

    Java字符串数组就这些了。

    Reference: Arrays Oracle Documentation

    参考: 阵列Oracle文档

    翻译自: https://www.journaldev.com/17809/java-string-array

    java字符串转字符串数组

    展开全文
  • av_str varchar2, --要分割的字符串 av_split varchar2, --分隔符号 av_index number --取第几个元素 ) return varchar2 is lv_str varchar2(1024); lv_strOfIndex varchar2(1024); lv_length number; begin ...
    create or replace function Get_StrArrayStrOfIndex
    (
      av_str varchar2,  --要分割的字符串
      av_split varchar2,  --分隔符号
      av_index number --取第几个元素
    )
    return varchar2
    is
      lv_str varchar2(1024);
      lv_strOfIndex varchar2(1024);
      lv_length number;
    begin
      lv_str:=ltrim(rtrim(av_str));
      lv_str:=concat(lv_str,av_split);
      lv_length:=av_index;
      if lv_length=0 then
          lv_strOfIndex:=substr(lv_str,1,instr(lv_str,av_split)-length(av_split));
      else
          lv_length:=av_index+1;
         lv_strOfIndex:=substr(lv_str,instr(lv_str,av_split,1,av_index)+length(av_split),instr(lv_str,av_split,1,lv_length)-instr(lv_str,av_split,1,av_index)-length(av_split));
      end if;
      return  lv_strOfIndex;
    end Get_StrArrayStrOfIndex;
    
    

    示例:

    select Get_StrArrayStrOfIndex('A_B_C_D','_',1) from dual --- B
    select Get_StrArrayStrOfIndex('A_B_C_D','_',2) from dual --- C
    select Get_StrArrayStrOfIndex('A_B_C_D','_',3) from dual --- D
    
    展开全文
  • Oracle中使用字符串数组参数

    千次阅读 2008-12-09 10:37:00
    今天在项目中需要使用一个字符串数组参数,其实本来打算在cs文件中拼接字符串的,不过leader说可以在Oracle中使用数组参数,所以就看看了…… 其具体过程如下: 1、需要的类的命名空间: A、Oracle.DataAccess....

            今天在项目中需要使用一个字符串数组参数,其实本来打算在cs文件中拼接字符串的,不过leader说可以在Oracle中使用数组参数,所以就看看了……

           

            其具体过程如下:

            1、需要的类的命名空间:

            A、Oracle.DataAccess.Client

            B、Oracle.DataAccess.Types

     

            2、数据库包中定义如下:

            TYPE t_cursor is ref cursor;  -- 游标
            TYPE AssocArrayVarchar2_t is table of VARCHAR2(100) index by BINARY_INTEGER; --数组参数类型

     

            3、存储过程如下:

    1. PROCEDURE GetOrgInforResults(shortname varchar2,strOrg IN AssocArrayVarchar2_t,g_cursor out t_cursor )
    2.           as
    3.             v_str varchar2(200);
    4.             v_str2 varchar2(2000);
    5.         begin
    6.             v_str:= 'select og_id,og_name from orginfor where isuse=''1''
    7.             and og_id in ( ';
    8.             FOR i IN 1..strOrg.count LOOP
    9.             if(i = strOrg.count)then
    10.                      v_str2:=v_str2||''''||strOrg(i)||'''';
    11.             else
    12.                      v_str2:=v_str2||''''||strOrg(i)||''',';
    13.             end if;
    14.             END LOOP;
    15.             v_str:=v_str||v_str2||' ) group by og_id,og_name';
    16.             
    17.             open g_cursor for v_str;
    18.             end;

                   4、调用代码如下:

    1. public static DataSet GetOrgInforByName(string orgName, string[] strOrg, string tableName)
    2.         {
    3.             Oracle.DataAccess.Client.OracleParameter[] param = new Oracle.DataAccess.Client.OracleParameter[3];
    4.             param[0] = new Oracle.DataAccess.Client.OracleParameter("shortname", OracleDbType.Varchar2, 14);
    5.             param[0].Value = orgName;
    6.             param[1] = new Oracle.DataAccess.Client.OracleParameter("strOrg", OracleDbType.Varchar2, strOrg.Length);
    7.             param[1].CollectionType = OracleCollectionType.PLSQLAssociativeArray;
    8.             param[1].Value = strOrg;
    9.             param[1].Direction = ParameterDirection.Input;
    10.             param[2] = new Oracle.DataAccess.Client.OracleParameter("tableName", OracleDbType.RefCursor);
    11.             param[2].Direction = ParameterDirection.Output;
    12.             DataSet ds = OracleHelper_Assess.ExecuteDataSet(OracleProvider.connectionStringWithConfig, CommandType.StoredProcedure,
    13.                 GetOrgInforResult,tableName,
    14.                 param);
    15.             return ds;
    16.         }

            这里仿照了微软的OracleHelper制作了一个自定义的类:OracleHelper_Assess,里面的方法是一样的。

     

            过程其实和Oracle提供的案例差不多,只是使用完毕之后才发觉拼接字符串的过程从cs文件中转移到了存储过程中,不晓得这样是不是提高了代码的效率……

          

            另外,就是本来打算在空间里定义一个类型的:create or replace type AssocArrayVarchar2 is table of varchar2(100);但是这样做了之后发现调用的事后,会报异常【参数的个数或者类型不正确】,最后是将这个类型放入包头中定义,原因未知……

    展开全文
  • 其中SPLIT_TYPE为自定义的字符串数组/集合类型名称  

     

    其中SPLIT_TYPE为自定义的字符串型数组/集合类型名称

     

    展开全文
  • 如何从 PL/SQL 存储函数中返回数组类型   思路:在 Oracle 数据库中创建 VARRAY ,在Java Application中使用 oracle.sql.ARRAY 类 访问 VARRAY   VARRAY 是大小可变的数组。它具有数据元素的...
  • shell 字符串数组的用法

    千次阅读 2009-05-11 16:21:00
    shell 字符串数组处理这段代码用来处理系统中的某个程序(脚本)的调用,但是又不知道这个程序文件的具体位置,只是知道可能存在的位置。有点智能的味道哦。 exp_cmds="$BASE_DIR/$old_version/bin/exp_my_db / $...
  • Oracle 自定义字符串转换数组函数

    千次阅读 2016-12-22 22:12:00
    Oracle 自定义字符串转换数组的函数
  • HTML代码转成字符串数组

    千次阅读 2017-02-28 10:58:37
    [ '', '', '' ].join(''); 使用到的替换正则 左边 查找到^(\s+) 替换成\1' 右边 查找到>$ 替换成>',
  • 最近CSDN上有比较多的朋友问到java与oracle存储过程/函数的交互方面的问题。本人也是一步步学起来的,在之前也碰到过类似的问题,经常一头雾水。但现在某些东西似乎是有点入门的味道了,觉得应该写点什么总结一下,...
  • 第一种 第二个集合字符串形式显示 <?xml version="1.0" encoding="UTF-8" ?> 记录sql 用于实体类里返回json形式 第二种 第二个集合封装对象形式显示 <?xml versi
  • Oracle分割字符串返回数组函数

    千次阅读 2018-11-04 15:30:39
    create type char_table is table of varchar2(2000);--创建自定义类型脚本 create or replace function split_string(pi_str in varchar2, pi_separator in varchar2) --创建函数 return char_table ...
  • 因为Oracle中的一个普通verchar字段长度最多为4000,所以需要对长字符串进行分割处理。  public static String [] str2arr(StringBuffer sb){ int len=sb.length(); if(len!=0){ int n=len/1300; int ...
  • SELECT REGEXP_SUBSTR('A,B,C','[^,]+',1,LEVEL) FROM DUAL CONNECT BY LEVEL('A,B,C')-LENGTH(REPLACE('A,B,C',','))+1 字符串为A,B,C 执行完
  • 在(1)中,我们讲了如何传入String数组和int数组。这里,讲下如何传出String数组。可能看了代码之后,有的朋友会有疑问:为什么要传出String数组?直接传出一个游标不好吗? 这里简单说下初衷:游标基本上只能从...
  • 字符串转数组: (SELECT REGEXP_SUBSTR('34,56,-23', '[^,]+', 1, LEVEL, 'i') AS STR FROM DUAL CONNECT BY LEVEL 0 THEN a.extend; a(a.Count) := Trim(SubStr(psrc, j, i-j)); ...
  • --字符串数组,char_table为自定义类型 begin for p in(select lp_id,zfgl_id,case_id,cf_amount from dzjc_xzzf_t_zfgl where lp_id is not null) loop zjid:=p.zfgl_id; select split_string(p.lp_id,',') into ...
  • 联合数组以前被称为PL/SQL表。在表中不能使用联合数组,只能将它们用作程序设计的结构体。...另外,在ORACLE 10G中,还可以使用具有唯一性的变长字符串作为联合数组的索引。 可以使用任意的整数作为联合数组的索引
  • [Oracle]分割字符串返回数组

    千次阅读 2014-11-25 15:54:49
    数组作为select in的查询条件 [c-sharp] view plain copy SELECT * FROM student WHERE id IN (SELECT * FROM TABLE(CAST(split( '001,002' ,  ',' )AS mytable)));    ...
  • CREATE OR REPLACE FUNCTION STR2_TO_ARRAY(P_STRING IN VARCHAR2 ,P_SPLIT IN VARCHAR2) RETURN ARRAYTYPE AS V_STR LONG DEFAULT P_STRING || P_SPLIT; V_N NUMBER; V_VALUE VARCHAR2(1000);...
  • oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...
  • Oracle字符串分割Split

    2017-09-29 15:28:32
    Oracle字符串分割Split一、创建数组类型Sql代码 CREATE OR REPLACE TYPE T_RET_TABLE IS TABLE OF NVARCHAR2(512) 二、创建字符串分割函数Sql代码 CREATE OR REPLACE FUNCTION F_SPLIT_STRING(AS_STR NVARCHAR2,
  • oracle、plsql利用数组实现存储过程随机生成姓名、字符串、地址、随机数 如何用存储过程生成集合...看一下就明白,如何用集合生成随机字符串,如何用存储过程调用,如何声明存储过程数组
  • 请教大家个oracle 字符串分割函数并且该函数返回数组长度 现在我的数据库某个字段存值如下: '1/2/3' 如何编写一个函数能根据'/' 分割返回一个数组长度3 类似java中的split方法 我这样写现在不行 CREATE OR ...
  • 我们依次取得字符串 “天天向上”的每个字符以及它的首拼“TTXS”。 1、创建一个表: create table test0713( hz varchar2(50), --汉字 sp varchar2(10) --首拼 ) 2、插入一条数据: 3、通过树的层高取得值: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,135
精华内容 18,054
关键字:

oracle字符串数组