精华内容
下载资源
问答
  • 转置字符串
    2022-02-18 20:46:41
    import java.util.Scanner;
    public class Test {
        public static void main(String[] args) {
           Scanner a = new Scanner(System.in);
           String arr = a.next();
           String back = "";
           //arr.length == 字符串长度
            for (int i = 1; i <= arr.length(); i++) {
                char d = arr.charAt(arr.length()-i);
                back=  back.concat(String.valueOf(d));
               //System.out.println(arr.length());
            }
            System.out.println(back);
        }
    }

    更多相关内容
  • 这被称为转置.以下代码段执行您需要的:import java.util.*;public class ListTranspose {public static void main(String[] args) {Object[][] data = {{ "Title","Data1","Data2","Data3" },{ "A",4 },{ "B",7 },}...

    这被称为转置.以下代码段执行您需要的:

    import java.util.*;

    public class ListTranspose {

    public static void main(String[] args) {

    Object[][] data = {

    { "Title","Data1","Data2","Data3" },{ "A",4 },{ "B",7 },};

    List> table = new ArrayList>();

    for (Object[] row : data) {

    table.add(Arrays.asList(row));

    }

    System.out.println(table); // [[Title,Data3],// [A,4],// [B,7]]"

    table = transpose(table);

    System.out.println(table); // [[Title,B],// [Data1,3],// [Data2,5],// [Data3,7]]

    }

    static List> transpose(List> table) {

    List> ret = new ArrayList>();

    final int N = table.get(0).size();

    for (int i = 0; i < N; i++) {

    List col = new ArrayList();

    for (List row : table) {

    col.add(row.get(i));

    }

    ret.add(col);

    }

    return ret;

    }

    }

    也可以看看

    展开全文
  • Java转置String的各种方法分析

    千次阅读 2020-02-10 18:06:13
    这里有String的各种转置办法,Java语言描述。 肯定不能说面面俱到,但有效的方法基本齐备,还有各种方法之间的比较和优化,看过来。

    字符串倒置

    说到这字符串倒置,其实还有些值得说道的,尽管不难。
    C/C++有个reverse(),可以直接用,但我大Java并没有……
    想到一种办法并不难,但你能想到几种有效的办法呢?
    一起来看看吧!

    先做一下基本的定义,后面可以统一使用:

    String string = "ADFGJINJOOKC";
    int length = string.length();
    char[] chars0 = string.toCharArray();
    

    Strategy_1:倒转char[]

    倒转char[]其实就是新生成一个char[],正向遍历原char[],把char数据逆向复制到新char[]中。

    char[] chars1 = new char[length];
    for (int i = 0; i < length; i++) {
        chars1[i] = chars0[length-i-1];
    }
    System.out.println(new String(chars1));
    

    Strategy_2:利用StringBuilder的reverse()

    虽然String没有reverse(),但可以利用String对象生成StringBuilder对象,再reverse(),打印就直接调toString()了,方便简洁。

    System.out.println(new StringBuilder(string).reverse());
    

    Strategy_3:直接拼接

    所谓直接拼接,其实就是new一个StringBuilder对象,倒着遍历char[],把char一个一个append()到StringBuilder对象上。

    StringBuilder reverse3 = new StringBuilder();
    for (int i = length-1; i >= 0; i--) {
        reverse3.append(chars0[i]);
    }
    System.out.println(reverse3);
    

    看了解法二,说实话,此法大可不必……

    Strategy_4:直接倒着打印

    倒着遍历,直接打印。
    由于需要大量的IO,所以慢。
    也就初学者会真的这么用吧……

    for (int i = length-1; i >= 0; i--) {
        System.out.print(chars0[i]);
    }
    System.out.println();
    

    Strategy_5:利用charAt(i)来拼接

    String确实有charAt(i),但为什么摆着现成的随机访问index不用呢?何必何必,感觉还不如方法三。

    StringBuilder reverse5 = new StringBuilder();
    for (int i = length-1; i >= 0; i--) {
        reverse5.append(string.charAt(i));
    }
    System.out.println(reverse5);
    

    Strategy_6:使用栈来拼接

    栈自然是可以的,LIFO,但单独拿出来而不利用数组的随机访问,大可不必。

    何况是Java的java.util.Stack,继承自java.util.Vecter的一个类,一个被synchronized包裹的类,不必……

    Stack<Character> stack = new Stack<>();
    for (char c : chars0) {
        stack.push(c);
    }
    StringBuilder reverse6 = new StringBuilder();
    while (!stack.isEmpty()) {
        reverse6.append(stack.pop());
    }
    System.out.println(reverse6);
    

    Strategy_7:两侧向中间交换

    这个思想就是swap(),经典的交换算法。

    char[] chars7 = chars0;
    for (int i = 0; i < length/2; i++) {
        char temp = chars7[i];
        chars7[i] = chars7[length-i-1];
        chars7[length-i-1] = temp;
    }
    System.out.println(new String(chars7));
    

    Strategy_7の位运算优化

    先写swap():

    private static void swap(char a, char b) {
        if (a != b) {
            a ^= b;
            b ^= a;
            a ^= b;
        }
    }
    

    再写具体的交换:(毕竟引用传递嘛,隐去了指针,不需使用&)

    char[] chars8 = chars0;
    for (int i = 0; i < length/2; i++) {
        swap(chars8[i], chars8[length-i-1]);
    }
    System.out.println(new String(chars8));
    

    完整Java代码

    import java.util.Stack;
    
    public class StringReverseTest {
    
        private static void swap(char a, char b) {
            if (a != b) {
                a ^= b;
                b ^= a;
                a ^= b;
            }
        }
    
        public static void main(String[] args) {
            String string = "ADFGJINJOOKC";
            int length = string.length();
            char[] chars0 = string.toCharArray();
            //方法一:倒转char[]
            char[] chars1 = new char[length];
            for (int i = 0; i < length; i++) {
                chars1[i] = chars0[length-i-1];
            }
            System.out.println(new String(chars1));
            //方法二:利用StringBuilder的reverse()
            System.out.println(new StringBuilder(string).reverse());
            //方法三:直接拼接
            StringBuilder reverse3 = new StringBuilder();
            for (int i = length-1; i >= 0; i--) {
                reverse3.append(chars0[i]);
            }
            System.out.println(reverse3);
            //方法四:直接倒着打印
            for (int i = length-1; i >= 0; i--) {
                System.out.print(chars0[i]);
            }
            System.out.println();
            //方法五:利用charAt(i)来拼接
            StringBuilder reverse5 = new StringBuilder();
            for (int i = length-1; i >= 0; i--) {
                reverse5.append(string.charAt(i));
            }
            System.out.println(reverse5);
            //方法六:使用栈来拼接
            Stack<Character> stack = new Stack<>();
            for (char c : chars0) {
                stack.push(c);
            }
            StringBuilder reverse6 = new StringBuilder();
            while (!stack.isEmpty()) {
                reverse6.append(stack.pop());
            }
            System.out.println(reverse6);
            //方法七:两侧向中间交换
            char[] chars7 = chars0;
            for (int i = 0; i < length/2; i++) {
                char temp = chars7[i];
                chars7[i] = chars7[length-i-1];
                chars7[length-i-1] = temp;
            }
            System.out.println(new String(chars7));
            //swap()
            char[] chars8 = chars0;
            for (int i = 0; i < length/2; i++) {
                swap(chars8[i], chars8[length-i-1]);
            }
            System.out.println(new String(chars8));
        }
    
    }
    

    表表态

    个人用着方法二,那个StringBuilder的reverse()比较顺手。

    展开全文
  • JNI实现字符串转置

    2020-04-14 23:05:34
    * @param param 待转置字符串。 * @return 转置后的字符串。 */ public static native String reverseStr(String param); 生成一个native C方法声明 JNIEXPORT jstring JNICALL Java_____reverseStr(JNIEnv *....

    声明一个Java native方法

    /**
      * @param param 待转置的字符串。
      * @return 转置后的字符串。
      */
    public static native String reverseStr(String param);
    

    生成一个native C方法声明

    JNIEXPORT jstring JNICALL Java_____reverseStr(JNIEnv *, jclass, jstring);
    

    实现native C方法

    JNIEXPORT jstring JNICALL Java_____reverseStr(JNIEnv *env, jclass jc, jstring p) {
        jsize js = (*env)->GetStringLength(env, p);
        const jchar *jch = (*env)->GetStringChars(env, p, NULL);
        jsize j = 0, i = js - 1;
        jchar jch_tmp_1[js];
        for (; j < js; ++j, --i) {
            jch_tmp_1[j] = jch[i];
        }
        (*env)->ReleaseStringChars(env, p, jch);
        return (*env)->NewString(env, jch_tmp_1, js);
    }
    

    此处重点放在本地方法的实现中。

    测试

    System.out.println(reverseStr("!anihC uoy evol I!国中你爱我"));
    
    2020-04-14 22:42:55.257 1106-1106/I/System.out: 我爱你中国!I love you China!
    
    展开全文
  • System.out.println(“请输入字符串”); Scanner sc = new Scanner(System.in); String word = sc.nextLine(); char[] ch = word.toCharArray(); for (int i = ch.length - 1;i >= 0;i–) { System.out.println...
  • * 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 * @author 何平生 * */ public class HW_11 { public static void main...
  • JAVA字符串的方法1、length() 字符串的长度例:char chars[]={'a','b'.'c'};String s=new String(chars);int len=s.length();2、charAt() 截取一个字符例:char ch;ch="abc".charAt(1); 返回'b'3、getChars() 截取多...
  • 使用 StringBuilder 或 StringBuffer 的 reverse 方法(需要JDK1.8) 不考虑字符串中的字符是否是 Unicode 编码,自己实现。 使用递归方法
  • Java字符串的逆置

    2021-10-14 10:33:56
    从键盘上输入一段字符串,逆置输出 比如从键盘上输入asdfgh 输出h g f d s a import java.util.Scanner; public class T33 { public static void main(String[] args) { String s=new String(); System.out....
  • 【课堂练习:矩阵转置】 已知一个二维数组A 表示一个矩阵,求AT。 其中,AT 表示矩阵的转置。...import java.util.Scanner; public class JuZhenZhuanZhi { public static void main(String[] args) { Scanner sc
  • 1.定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入 abc,输出结果 cba public class Snippet { public static void main(String[] args) { Scanner sc = new ...
  • 小疯之前遇到一个字符串反转输出的问题,然后找到几种方法。首先比较简单的情况就是一串字符反着输出,不用考虑其他,这种比较简单:1、把字符串变成数组,然后倒序输出:public void StringRevers(String str) {// ...
  • Java中反转字符串我所知的五种方法

    千次阅读 2016-06-28 01:44:54
    五种方法已经封装到类中,话不多说,直接上代码。...import java.util.Stack; public class Reverse { String str = new String(); public Reverse(String str) { this.str = str; } //用数组实现 public S
  • 如何反转倒置字符串?

    2021-01-20 01:42:35
    Java中,如何反转倒置字符串?下面的例子显示了如何将字符串参数反转倒置。程序使用StringBuffer(String string)方法缓冲输入String,反转缓冲区,然后使用toString()方法将缓冲区转换成String。package com.yiibai...
  • Java字符串转换为数字:Integer的parseInt方法

    万次阅读 多人点赞 2020-08-10 21:54:20
    Java官方文档[1]的解释 public static int parseInt​(String s) throws NumberFormatException Parses the string argument as a signed decimal integer. The characters in the string must all be decimal ...
  • 判断一个字符串是否是对称字符串 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串。 1、第1个字符与最后一个字符去比较 2、第2个字符与倒数第2个字符去比较 3、第3个字符与倒数第3个字符去比较...
  • String s1="1a2b3c"; String s2=s1.reverse();//即s2="c3b2a1
  • // 符abcd123ABCD456 怎么转换为 ABCD321abcd654// 数字要倒序 小写转大写, 大写转小写Array.prototype.reverse = function() {var tmp;for (var i = 0, j = this.length - 1; i < j; i++, j--) {tmp = this[i]...
  • 1.通过jdk自带reverse的方法 public class InvertString { public static void main(String[] args) { String a="abcde"; StringBuilder b = new StringBuilder(a); System.out.print(b.rever
  • java转置数组

    2021-03-10 09:26:24
    以下是加载的数组的示例: Term 1, Definition 1 Term 2, Definition 2 Term 3, Definition 3 为了访问数组中的一个字符串,我使用以下代码: dataArray.get(rowNumber)[columnNumber] 但是,我需要能够生成所有术语的...
  • 【问题】 I’d like to extract certain snippets from a MySQL column which are bounded in some unique way. Here is an example: I have the following ...逆分组计算 拆字符串成多记录 字符串拆分一行变多行
  • 1、在mysql中,根据数字字符串排序,会按照和java字符串比较的模式进行(即第一位先比较,相等在比较下一位,以此类推),这样就会在有些比较的情况下,获取到不正确的结果,如:2和19,用数字的类型比较应该是19更...
  • 写一个函数,输入int型,返回整数逆序后的字符串。如:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。 1 public static String reverse(int arg) { 2 String ...
  • Leetcode 题解 - 字符串

    2021-02-19 20:01:48
    Leetcode 题解 - 字符串 1. 字符串循环移位包含 2. 字符串循环移位 3. 字符串中单词的翻转 4. 两个字符串包含的字符是否完全相同 5. 计算一组字符集合可以组成的回文字符串的最大长度 6. 字符串同构 7. 回文子字符...
  • import java.util.Scanner; public class 大小写转换2 { public static void main(String[] args) { ... // 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变...
  • 字符串 https://ww2.mathworks.cn/help/matlab/characters-and-strings.html 创建字符向量 通过将字符序列括在单引号中来创建一个字符向量。 chr = 'Hello, world' chr = 'Hello, world' 字符向量为 char 类型的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,177
精华内容 870
关键字:

java 字符串转置

java 订阅